示例#1
0
    protected void OnGUI()
    {
        switch (m_EditorState)
        {
        case EditorState.ChooseSnake:
            EditorGUILayout.HelpBox("Drap snake editor prefab to this", MessageType.Info);
            EditorGUILayout.BeginHorizontal();
            m_SnakeEditorPrefab = EditorGUILayout.ObjectField("Snake Editor Prefab", m_SnakeEditorPrefab, typeof(GameObject), false) as GameObject;
            if (m_SnakeEditorPrefab != null && GUILayout.Button("Editor"))
            {
                m_SnakeEditor = (PrefabUtility.InstantiatePrefab(m_SnakeEditorPrefab) as GameObject).GetComponent <slSnakeEditor>();
                if (m_SnakeEditor != null)
                {
                    m_EditorState = EditorState.EditorSnake;
                    m_SnakeEditorUpdateCoroutine = hwmEditorCoroutine.Start(UpdateSnakeEditor());
                }
                else
                {
                    DestroyImmediate(m_SnakeEditor.gameObject);
                    m_SnakeEditor = null;
                    EditorUtility.DisplayDialog("Editor snake failed", "Invalid snake editor prefab", "OK");
                }
            }
            EditorGUILayout.EndHorizontal();
            break;

        case EditorState.EditorSnake:
            OnGUI_EditorSnake();
            break;
        }
    }
示例#2
0
    private void DisposeEditorSnake()
    {
        if (m_SnakeEditorUpdateCoroutine != null)
        {
            m_SnakeEditorUpdateCoroutine.Stop();
            m_SnakeEditorUpdateCoroutine = null;
        }

        m_SnakeEditorPrefab = null;
        if (m_SnakeEditor != null)
        {
            DestroyImmediate(m_SnakeEditor.gameObject);
            m_SnakeEditor = null;
        }
    }