hi I have Class
[System.Serializable]
public class EditorHolder : MonoBehaviour
{
public Sprite Picture;
public string GeneralTypeWord;
public string[] SpecializeTypeWord;
public int[] WhichCharacterAnswerWord1;
public int[] WhichCharacterAnswerWord2;
public int[] WhichCharacterAnswerWord3;
public enum QuestionType
{
Noone,
TypeGenerall,
TypeSpecialize,
} ;
public QuestionType Type;
And I wrote Editor for it
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(EditorHolder)), CanEditMultipleObjects]
public class PropertyEditorHolder : Editor
{
public SerializedProperty
Picture_Prop,
GeneralTypeWord_Prop,
SpecializeTypeWord_Prop,
WhichCharacterAnswerWord1_Prop,
WhichCharacterAnswerWord2_Prop,
WhichCharacterAnswerWord3_Prop,
Type_Prop
;
void OnEnable()
{
Picture_Prop = serializedObject.FindProperty("Picture");
GeneralTypeWord_Prop = serializedObject.FindProperty("GeneralTypeWord");
SpecializeTypeWord_Prop = serializedObject.FindProperty("SpecializeTypeWord");
WhichCharacterAnswerWord1_Prop = serializedObject.FindProperty("WhichCharacterAnswerWord1");
WhichCharacterAnswerWord2_Prop = serializedObject.FindProperty("WhichCharacterAnswerWord2");
WhichCharacterAnswerWord3_Prop = serializedObject.FindProperty("WhichCharacterAnswerWord3");
Type_Prop = serializedObject.FindProperty("Type");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(Type_Prop);
EditorHolder.QuestionType st = (EditorHolder.QuestionType)Type_Prop.enumValueIndex;
switch (st)
{
case EditorHolder.QuestionType.Noone:
break;
case EditorHolder.QuestionType.TypeGenerall:
EditorGUILayout.PropertyField(Picture_Prop, new GUIContent("QuestionPicture"));
EditorGUILayout.PropertyField(GeneralTypeWord_Prop, new GUIContent("QuestionWorldGeneral"));
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(WhichCharacterAnswerWord1_Prop, true);
if (EditorGUI.EndChangeCheck())
serializedObject.ApplyModifiedProperties();
EditorGUIUtility.LookLikeControls();
break;
case EditorHolder.QuestionType.TypeSpecialize:
EditorGUILayout.PropertyField(Picture_Prop, new GUIContent("QuestionPicture"));
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(SpecializeTypeWord_Prop, true);
if (EditorGUI.EndChangeCheck())
serializedObject.ApplyModifiedProperties();
EditorGUIUtility.LookLikeControls();
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(WhichCharacterAnswerWord1_Prop, true);
if (EditorGUI.EndChangeCheck())
serializedObject.ApplyModifiedProperties();
EditorGUIUtility.LookLikeControls();
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(WhichCharacterAnswerWord2_Prop, true);
if (EditorGUI.EndChangeCheck())
serializedObject.ApplyModifiedProperties();
EditorGUIUtility.LookLikeControls();
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(WhichCharacterAnswerWord3_Prop, true);
if (EditorGUI.EndChangeCheck())
serializedObject.ApplyModifiedProperties();
EditorGUIUtility.LookLikeControls();
break;
}
serializedObject.ApplyModifiedProperties();
}
}
it works well but when I want to use this Class for my Gamesteps show me class and can not initialize its variables in instance, one Array of my Steps that each element of that I can initialize variables of my class and Behavior each of Steps in Game
Could You Please Help Me?
thanks
↧