single.php

Unity の C#スクリプト クラスのインスタンスを作成してアクセスする方法

Unityの C#スクリプトで別のクラスにインスタンスからアクセスする手順を備忘録的に投稿します。

インスタンスから変数にアクセス

UnityのC#スクリプトで、別のクラスにアクセスする方法は他にもありますが、コードの追加だけで完結できる、インスタンスを作成してアクセスする方法があります。

アクセスされる側のクラスに Instanceになる変数を追加して、Awake関数内で自信をインスタンス化します。

using UnityEngine;

public class HogeHoge : MonoBehaviour
{
  public static HogeHoge Instance { get; private set; }
  public int index;

  void Awake()
  {
    if (Instance == null) Instance = this;
    else Destroy(gameObject);
  }  
}

アクセスする側のクラスでは、インスタンス化して変数から内部の変数や関数などにアクセスができます。

using UnityEngine;

public class Other : MonoBehaviour
{
  void Update()
  {
    if (HogeHoge.Instance != null)
    {
      // インスタンス越しに変数にアクセス
      int index = HogeHoge.Instance.index
    }      
  }  
}

まとめ

今回はUnityのC#スクリプトで別のクラスにインスタンスからアクセスする手順について書きました。

C#のクラスから別のクラスを参照する方法は様々な方法がありますがコードだけで完結できる方法としてInstance型の変数を使う方法があります。

UnityのC#スクリプトで、他のクラスを参照したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です