Esempio n. 1
0
    private StoryEditorBase GetMovieEditor(string movie_type)
    {
        var type = Assembly.GetExecutingAssembly().GetType(string.Format("ME{0}", movie_type.ToString()));

        if (type == null)
        {
            Debug.LogError("未知错误。");
            return(null);
        }
        //MovieEditorBase moive = ScriptableObject.CreateInstance(string.Format("MovieEditor{0}", movie_type.ToString())) as MovieEditorBase;
        StoryEditorBase moive = System.Activator.CreateInstance(type) as StoryEditorBase;

        if (moive == null)
        {
            Debug.LogError("未知错误。");
            return(null);
        }
        moive.m_type = movie_type.ToString();
        moive.OnInit();
        return(moive);
    }
Esempio n. 2
0
    void guiLeftToolbar()
    {
        rct_left_toolbar = new Rect(0, top_toolbar_height, left_toolbar_width, position.height);
        GUILayout.BeginArea(rct_left_toolbar);

        GUI.color = new Color(0f, 0f, 0f, 0.4f);
        GUI.DrawTexture(new Rect(0, 0, rct_left_toolbar.width, rct_left_toolbar.height), StoryEditorTools.GetWhiteTex());
        GUI.color = new Color(1f, 1f, 1f, 1f);

        GUI.Label(new Rect(20, 0, rct_left_toolbar.width - 20, item_height), cur_time_string);

        for (int idx = 0; idx < m_data.Count; idx++)
        {
            StoryEditorBase item = m_data[idx];
            if (item.m_is_select)
            {
                GUI.color = new Color(0.75f, 0.75f, 0.75f, 1.0f);
            }

            if (GUI.Button(new Rect(0, item_height * (idx + 1), rct_left_toolbar.width, item_height), item.m_type, EditorStyles.toolbarPopup))
            {
                for (int idy = 0; idy < m_data.Count; idy++)
                {
                    m_data[idy].UnSelect();
                }
                m_data[idx].OnSelect();
            }
            GUI.color = new Color(1f, 1f, 1f, 1f);
        }

        if (GUI.Button(new Rect(0, item_height * (m_data.Count + 1), rct_left_toolbar.width, item_height), "+", EditorStyles.miniButton))
        {
            is_create_movie_type = true;
        }

        GUILayout.EndArea();
    }
Esempio n. 3
0
    void guiCreateMovie()
    {
        rct_create_toolbar = new Rect(0, 0, position.width, position.height);
        GUILayout.BeginArea(rct_create_toolbar);
        create_type = (MovieEditorEnum)EditorGUI.EnumPopup(new Rect(0, 0, position.width, item_height), "选择类型:", create_type);

        if (GUI.Button(new Rect(0, 300, position.width, item_height), "create"))
        {
            is_create_movie_type = false;
            StoryEditorBase moive = GetMovieEditor(create_type.ToString());
            if (moive == null)
            {
                return;
            }
            moive.m_index = m_data.Count;
            m_data.Add(moive);
        }

        if (GUI.Button(new Rect(0, 400, position.width, item_height), "return"))
        {
            is_create_movie_type = false;
        }
        GUILayout.EndArea();
    }
Esempio n. 4
0
    void loadFromConfigFile(string file)
    {
        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(file);
        if (xmlDoc == null)
        {
            string err = "parse movie xml file failed:" + file;
            Debug.LogError(err);
            return;
        }
        m_data.Clear();

        XmlNode     root = xmlDoc.SelectSingleNode("Object");
        XmlNodeList list = root.ChildNodes;

        if (list == null || list.Count <= 0)
        {
            return;
        }
        for (int i = 0; i < list.Count; i++)
        {
            XmlNode         node    = list[i];
            XmlElement      element = (XmlElement)node;
            string          type    = element.GetAttribute("Type");
            StoryEditorBase movie   = GetMovieEditor(type);
            if (movie == null)
            {
                Debug.LogError("剧情解析错误,请删除该文件后,重做.");
                return;
            }
            movie.LoadData(element);
            movie.m_index = i;
            m_data.Add(movie);
        }
    }