public static void AddImageNumber() { GameObject tGameObject = Selection.activeGameObject; if (tGameObject == null) { return; } if (WillLosePrefab(tGameObject) == false) { return; } Undo.RecordObject(tGameObject, "Add a child UI ImageNumber"); // アンドウバッファに登録 GameObject tChild = new GameObject(GetName <UIImageNumber>(), typeof(RectTransform)); Transform tTransform = tChild.transform; tTransform.SetParent(tGameObject.transform, false); tTransform.localPosition = Vector3.zero; tTransform.localRotation = Quaternion.identity; tTransform.localScale = Vector3.one; UIImageNumber tNumber = tChild.AddComponent <UIImageNumber>(); tNumber.SetDefault(); Selection.activeGameObject = tChild; UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene()); }
/// <summary> /// スンスペクター描画 /// </summary> override protected void DrawInspectorGUI() { // ターゲットのインスタンス UIImageNumber tTarget = target as UIImageNumber; EditorGUILayout.Separator(); // 少し区切りスペース //------------------------------------------------------------------- // マテリアル選択 DrawMaterial(tTarget); //------------------------------------------------------------------- EditorGUILayout.Separator(); // 少し区切りスペース // 表示する値 GUI.backgroundColor = new Color(0.0f, 1.0f, 1.0f, 1.0f); // GUIの下地を灰にする int tValue = EditorGUILayout.IntField("Value", tTarget.value, GUILayout.Width(200f)); GUI.backgroundColor = Color.white; if (tValue != tTarget.value) { // 変化があった場合のみ処理する Undo.RecordObject(tTarget, "ImageNumber : Value Change"); // アンドウバッファに登録 tTarget.value = tValue; EditorUtility.SetDirty(tTarget); // UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ; } EditorGUILayout.Separator(); // 少し区切りスペース bool tAutoSizeFitting = EditorGUILayout.Toggle("Auto Size Fitting", tTarget.autoSizeFitting); if (tAutoSizeFitting != tTarget.autoSizeFitting) { Undo.RecordObject(tTarget, "UIImageNumber : Auto Size Fitting Change"); // アンドウバッファに登録 tTarget.autoSizeFitting = tAutoSizeFitting; EditorUtility.SetDirty(tTarget); UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene()); } }