(Unity・LEGOワールドで遊ぶ)触れると落ちるブロックの作り方(OnControllerColliderHitの活用)

(オブジェクトの作成)

  • Cubeを1つ作成
  • 名前を「FallBlock」に変更
  • 好きな画像を付ける。

  • FallBlockに「Rigidbody」を追加
  • 「Is Kinematic」にチェックを入れる(これで重力の機能が停止します)


(スクリプト)

  • 新規にC#スクリプトを作成
  • 名前を「FallBlock」に変更
  • 下記のコードを書いてチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FallBlock : MonoBehaviour
{
    private void OnControllerColliderHit(ControllerColliderHit hit)
    {
        if(hit.gameObject.CompareTag("FallBlock"))
        {
            hit.gameObject.GetComponent<Rigidbody>().isKinematic = false;
        }
    }
}

(設定)

  • このスクリプトは「Player」に追加しましょう。

 

  • FallBlockオブジェクトに「FallBlock」のTagを設定してください。


(実行)

  • 設定が完了したら、FallBlockを空中に浮かべてゲームを再生
  • Playerが触れた瞬間に、FallBlockが下に落ちれば成功です。


(組み合わせる)

  • 最初は前方の扉は閉じている。

  • ジャンプして「FallBlock」オブジェクトに触れて落とす。
  • 「FallBlock」オブジェクトが「UnLock」オブジェクトの場所に落ちて、扉が消えれば成功です。