Hogeクラスは何の変哲もないMonoBehaviorの継承でもないふつーのクラス。
シリアライズのため[System.Serializable]
[System.Serializable] class Hoge { string bar; }
そしてInsppectorを表示していたクラス
public class MyMono : MonoBehaviour { [SerializeField] Hoge[] hoges; }
と定義したとすると、 カスタムエディタ。
[CustomEditor(typeof(MyMono))] public class MyMonoEditor : Editor { public override void OnInspectorGUI() { serializedObject.Update(); SerializedProperty hogesSP = serializedObject.FindProperty("hoges"); var hoges = hogesSP.objectReferenceValue as Hoge[]; } }
以下のエラー。
error CS0039: Cannot convert type `UnityEngine.Object' to `Hoge[]' via a built-in conversion
ワンクッション置くぜ!
var hoges = hogesSP.objectReferenceValue as System.Object as Hoge[];
実行はできる・・。 だが・・・ランタイム時にエラー。
type is not a supported pptr value UnityEditor.DockArea:OnGUI()
これはList
http://answers.unity3d.com/questions/682932/using-generic-list-with-serializedproperty-inspect.html
無理?