2017-12-30 45 views
0

カスタムエディタユニティスクリプトを作成しようとしています。プロパティを使用してプライベート変数をカスタムエディタに公開する

私は、プロパティを介して公開している私的な変数にアクセスする必要があります。

ただし、エディタスクリプトを使用してプロパティにアクセスすることはできません。

カスタムエディタのMyObjectsプロパティにアクセスしようとしています。

私のクラス

public class MySpecialClass : MonoBehaviour { 

    [SerializeField] 
    private GameObject[] myObjects; 
    public GameObject[] MyObjects { 
     get { 
      return myObjects; 
     } 

     set { 
      myObjects = value; 
     } 
    } 
} 

マイカスタムエディタのスクリプト

using UnityEditor; 
[CustomEditor(typeof(MySpecialClass))] 
public class MySpecialClassEditor : Editor { 

    private bool[] showMyObjectSlots = new bool[MySpecialClass.MyObjects.Length]; 
} 

はなぜパブリックプロパティはCustomEditorにアクセスするのではないでしょうか?

+0

私はカスタムエディタの 'MyObjects'プロパティにアクセスしようとしています。 –

+3

静的コンテキストでMyObjectsにアクセスしようとしていますが、MyObjectsは静的ではありません –

答えて

2

非スタティックMyObjectsプロパティにアクセスするには、インスタンスが必要です。インスタンスは、カスタムエディタのtarget fieldにあります。フィールドtargetはタイプUnityEngine.Objectであるが、MonoBehaviourのタイプのオブジェクトを指しており、このクラスはカスタムエディタ(CustomEditor属性の引数)であり、したがってそれにキャストできます。

関連する問題