[Unity]Inspectorで変更を元に戻せるようにする

  • Day:2012.12.31 22:08
  • Cat:Unity
Inspectorで変更を元に戻せるようにするためには
SerializedObjectSerializedPropertyを使用します。

拡張したいコンポーネントのクラス

using UnityEngine;

public class Pokemon : MonoBehaviour
{
public string Name;
public float Height;
public float Weight;
}
拡張エディタクラス

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Pokemon))]
public class PokemonEditor : Editor
{
private SerializedProperty nameProperty;
private SerializedProperty heightProperty;
private SerializedProperty weightProperty;

private void OnEnable()
{
nameProperty = serializedObject.FindProperty("Name");
heightProperty = serializedObject.FindProperty("Height");
weightProperty = serializedObject.FindProperty("Weight");
}

public override void OnInspectorGUI()
{
serializedObject.Update();

var name = EditorGUILayout.TextField("名前", nameProperty.stringValue);

if (name != nameProperty.stringValue)
{
nameProperty.stringValue = name;
}

var height = EditorGUILayout.FloatField("高さ", heightProperty.floatValue);

if (height != heightProperty.floatValue)
{
heightProperty.floatValue = height;
}

var weight = EditorGUILayout.FloatField("重さ", weightProperty.floatValue);

if (weight != weightProperty.floatValue)
{
weightProperty.floatValue = weight;
}

serializedObject.ApplyModifiedProperties();
}
}

ss01_20130106221441.png

パラメータを変更した後に、

ss02_20130106221442.png

Undoすることで、

ss03_20130106221440.png

パラメータを元に戻せます。

Unity Script Reference – SerializedObject
Unity Script Reference – SerializedProperty
Unity Script Reference – Editor
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。