23/11/26 10:02:55.92 ap8K17/p.net
// Hogehoge.cs
public class Hogehoge : MonoBehaviour
{
public int 変数A{ get { return 変数a; } set { 変数a = value; } }
public bool 変数B{ get { return 変数b; } set { 変数b = value; } }
}
// GameManager.cs
public class GameManager : MonoBehaviour
{
public GameObject[] objects;
// ?
private void Start()
{
int aaa = this.objects[0].変数A; // ?
int bbb = this.objects[0].GetComponent<Hogehoge>().変数A; // ?
}
}
GameManagerの?はthis.objects[0]を見ている=GameObjectクラスを見ているので、GameObjectに変数Aがなくてエラーになる
?はthis.objects[0](GameObject)からHogehogeクラスを取得してHogehogeクラスを見ているので、Hogehogeの変数Aを見てエラーにならない
ただしGetComponentはコストが高い処理なので、毎フレーム実行する必要がある場合などはクラス変数(?)にHogehogeの変数を定義しておきそれにアクセスするほうが低コスト
public Hogehoge[] hogehoges;