特定のコンポーネントのメンバーにアクセスする
Unityは、C#のオブジェクト指向で作成されています
このことをベースに考えると構成の理解が深まります
シーン構成
考え方
ヒエラルキーの一覧に表示されているゲームオブジェクトは、それぞればGamaObjectクラスのインスタンスになります
ゲームオブジェクトは複数のコンポーネントを継承したクラスを保有しています
複数のコンポーネントから必要なコンポーネントを選択して取得し、そのメンバーにアクセスすることでインスタンス間の通信を行います
次のイメージは、ピリオド(.)で区切ってアクセスすることを示しています
GemeObjectのインスタンス.コンポーネントリストからアクセスしたいコンポーネントを探して取得.必要なメンバーへのアクセス
コード
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
// BoxColliderクラスのisTriggerプロパティに代入するケース
// ゲームオブジェクト.コンポーネント.プロパティ = 代入する値
// Cube.BoxCollider.IsTrigger = true;
GameObject.Find("Cube").GetComponent<BoxCollider>().isTrigger = true;
// BoxColliderクラスのClosestPointメソッドを呼び出す
// ゲームオブジェクト.コンポーネント.メソッド();
// var point =Cube.BoxCollider.ClosestPoint(Vector3 position);
var point = GameObject.Find("Cube").GetComponent<BoxCollider>().ClosestPoint(transform.position);
Debug.Log(point);
}
}
/// <summary>
/// <para>与えられた位置に最も近いコライダー上の点を返します。</para>
/// </summary>
/// <param name="position">最も近い点を探したい場所</param>。
/// <returns>(リターン
/// <para>指定された位置に最も近いコライダー上の点</para>.
/// </returns>
///
// public Vector3 ClosestPoint(Vector3 position)
ディスカッション
コメント一覧
まだ、コメントがありません