特定のコンポーネントのメンバーにアクセスする

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)