Exemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        //获取脚本对象
        EditorInspector script = target as EditorInspector;

        //绘制滚动条
        script.scrollPos = EditorGUILayout.BeginScrollView(script.scrollPos, false, true);

        script.myName = EditorGUILayout.TextField("text", script.myName);
        script.myId   = EditorGUILayout.IntField("int", script.myId);
        script.prefab = EditorGUILayout.ObjectField("GameObject", script.prefab, typeof(GameObject), true) as GameObject;

        //绘制按钮
        EditorGUILayout.BeginHorizontal();
        GUILayout.BeginHorizontal();
        GUILayout.Button("1");
        GUILayout.Button("2");
        script.myEnum = (EditorInspector.MyEnum)EditorGUILayout.EnumPopup("MyEnum:", script.myEnum);
        //Toggle组件
        m_EnableToogle = EditorGUILayout.BeginToggleGroup("EnableToggle", m_EnableToogle);
        script.toogle1 = EditorGUILayout.Toggle("toggle1", script.toogle1);
        script.toogle2 = EditorGUILayout.Toggle("toggle2", script.toogle2);
        EditorGUILayout.EndToggleGroup();

        EditorGUILayout.EndScrollView();
    }
Exemplo n.º 2
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(5);
        serializedObject.Update();
        me.childSpawnPoints = me.transform.GetComponentsInChildren <SpawnPoint>();

        if (debugToggle.boolValue = EditorInspector.ToggleLayout("Debug", debugToggle.boolValue))
        {
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("StartWave"))
            {
                if (Application.isPlaying)
                {
                    me.StartWave();
                }
            }
            if (GUILayout.Button("N.NextWave"))
            {
                if (Application.isPlaying)
                {
                    me.NowNextWave();
                }
            }
            if (GUILayout.Button("T.NextWave"))
            {
                if (Application.isPlaying)
                {
                    me.TimeNextWave(waveDelay.intValue);
                }
            }
            GUILayout.EndHorizontal();
            EditorGUILayout.PropertyField(gizmosColor, new GUIContent("Gizmos Color"));
            EditorGUILayout.PropertyField(gizmosSize, new GUIContent("Gizmos Size"));
        }

        if (settingToggle.boolValue = EditorInspector.ToggleLayout("Setting", settingToggle.boolValue))
        {
            autoStart.boolValue   = EditorGUILayout.ToggleLeft(new GUIContent("Auto Start"), autoStart.boolValue);
            autoProceed.boolValue = EditorGUILayout.BeginToggleGroup(new GUIContent("Auto Proceed"), autoProceed.boolValue);
            EditorGUILayout.PropertyField(waveDelay, new GUIContent("Wave Delay"));
            EditorGUILayout.EndToggleGroup();
            EditorGUILayout.PropertyField(separatedPattern, new GUIContent("Separated Pattern"));
        }

        if (waveEventToggle.boolValue = EditorInspector.ToggleLayout("Wave Event", waveEventToggle.boolValue))
        {
            EditorGUILayout.PropertyField(onWaveStart, new GUIContent("On Wave Start"));
            EditorGUILayout.PropertyField(onWaveFinish, new GUIContent("On Wave Finish"));
            EditorGUILayout.PropertyField(onWaveClear, new GUIContent("On Wave Clear"));
        }

        if (waveProcessingEventToggle.boolValue = EditorInspector.ToggleLayout("Wave Processing Event", waveProcessingEventToggle.boolValue))
        {
            EditorGUILayout.PropertyField(onWaveProceedInt, new GUIContent("On Wave Proceed"));
            EditorGUILayout.PropertyField(onWaveProceedString, new GUIContent("On Wave Proceed"));
        }

        if (sequenceEventToggle.boolValue = EditorInspector.ToggleLayout("Sequence Event", sequenceEventToggle.boolValue))
        {
            EditorGUILayout.PropertyField(onAllWaveClear, new GUIContent("On All Wave Clear"));
        }

        EditorGUILayout.LabelField("Wave State", waveState.enumDisplayNames[waveState.enumValueIndex]);
        EditorGUILayout.LabelField(new GUIContent("Current Wave"), new GUIContent(currentWave.intValue.ToString()));

        if (waveSequence.arraySize > 0)
        {
            DrawWaveManager();
        }
        else
        {
            GUILayout.Space(5f);
            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Start New Wave Sequence", GUILayout.Width(180)))
            {
                CreateWaveSequence(null);
            }
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(5f);
        }

        EditorUtility.SetDirty(me);
        serializedObject.ApplyModifiedProperties();
    }