「Unity/Editor/inspector値更新」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Inspector更新サンプル) |
|||
行3: | 行3: | ||
*testObjectに、TestObjectをいれる。 | *testObjectに、TestObjectをいれる。 | ||
*numに、3をいれる。 | *numに、3をいれる。 | ||
+ | *usersにGameObjectをいれる。 | ||
SampleScene.cs | SampleScene.cs |
2022年2月23日 (水) 01:02時点における版
Inspector更新サンプル
以下メンバを更新するサンプル
- testObjectに、TestObjectをいれる。
- numに、3をいれる。
- usersにGameObjectをいれる。
SampleScene.cs
using UnityEngine; public class SampleScene : MonoBehaviour { [SerializeField] int num; [SerializeField] GameObject testObject; [SerializeField] List<GameObject> users; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }
SampleSceneUpdateEditor.cs
using UnityEngine; using UnityEditor; [CustomEditor(typeof(SampleScene))] public class SampleSceneUpdateEditor : Editor { public override void OnInspectorGUI() { serializedObject.Update(); var num = serializedObject.FindProperty("num"); var testObject = serializedObject.FindProperty("testObject"); num.intValue = 3; testObject.objectReferenceValue = GameObject.Find("TestObject"); // 配列 var users = serializedObject.FindProperty("users"); SerializedProperty user; if (users.arraySize == 0) { users.InsertArrayElementAtIndex(0); user = users.GetArrayElementAtIndex(0); user.objectReferenceValue = GameObject.Find("User"); } EditorGUILayout.PropertyField(num); EditorGUILayout.PropertyField(testObject); EditorGUILayout.PropertyField(users); serializedObject.ApplyModifiedProperties(); } }