Ejemplo n.º 1
0
 private void drawTalk(TalkVo talk)
 {
     talk.lastTime = EditorGUILayout.FloatField("lastTime:", talk.lastTime);
     talk.player   = EditorGUILayout.TextField("player:", talk.player);
     talk.action   = EditorGUILayout.TextField("action:", talk.action);
     talk.content  = EditorGUILayout.TextField("content:", talk.content);
     talk.sound    = EditorGUILayout.TextField("sound:", talk.sound);
 }
Ejemplo n.º 2
0
    private void drawAction(StoryActionNode action)
    {
        action.type = EditorGUILayout.TextField("类型:", action.type);
        action.args = EditorGUILayout.TextField("参数:", action.args);

        // monsters
        {
            StoryMonster[] monsters = action.Monster;
            if (monsters.Length > 0)
            {
                if (bShowMonsters.Count <= 0)
                {
                    foreach (var monster in monsters)
                    {
                        bShowMonsters.Add(true);
                    }
                }

                EditorGUILayout.BeginVertical(subGroupStyle);
                int removeIndex = -1;
                for (int i = 0; i < monsters.Length; ++i)
                {
                    //bShowMonsters[i] = EditorGUILayout.Foldout(bShowMonsters[i], "Monsters(" + (i + 1) + ")");
                    //if (bShowMonsters[i])
                    EditorGUILayout.Foldout(true, "Monsters(" + (i + 1) + ")");
                    {
                        EditorGUILayout.BeginVertical(subGroupStyle);
                        var monster = monsters[i];
                        drawMonster(monster);
                        EditorGUILayout.EndVertical();
                    }
                    if (enableAddAndRemove && GUILayout.Button("删除这一个Monster"))
                    {
                        removeIndex = i;
                    }
                }
                EditorGUILayout.EndVertical();
                if (removeIndex >= 0)
                {
                    var tempList = new List <StoryMonster>(monsters);
                    tempList.RemoveAt(removeIndex);
                    action.Monster = tempList.ToArray();
                }
            }
            if (enableAddAndRemove && StyledButton("添加Monster"))
            {
                List <StoryMonster> tempActionList = new List <StoryMonster>(monsters);
                StoryMonster        v = new StoryMonster();
                tempActionList.Add(v);
                action.Monster = tempActionList.ToArray();
            }
        }

        // photos
        {
            var photos = action.Photo;
            if (photos.Length > 0)
            {
                if (bShowPhotos.Count <= 0)
                {
                    foreach (var photo in photos)
                    {
                        bShowPhotos.Add(true);
                    }
                }

                int removeIndex = -1;
                EditorGUILayout.BeginVertical(subGroupStyle);
                for (int i = 0; i < photos.Length; ++i)
                {
                    //bShowPhotos[i] = EditorGUILayout.Foldout(bShowPhotos[i], "Photos(" + (i + 1) + ")");
                    //if (bShowPhotos[i])
                    EditorGUILayout.Foldout(true, "Photos(" + (i + 1) + ")");
                    {
                        EditorGUILayout.BeginVertical("GroupBox");
                        var photo = photos[i];
                        drawPhotos(photo);
                        EditorGUILayout.EndVertical();
                    }
                    if (enableAddAndRemove && GUILayout.Button("删除这个Photo"))
                    {
                        removeIndex = i;
                    }
                }
                EditorGUILayout.EndVertical();
                if (removeIndex >= 0)
                {
                    var tempList = new List <PhotoVo>(photos);
                    tempList.RemoveAt(removeIndex);
                    action.Photo = tempList.ToArray();
                }
            }

            if (enableAddAndRemove && StyledButton("添加Photo"))
            {
                List <PhotoVo> tempActionList = new List <PhotoVo>(photos);
                PhotoVo        v = new PhotoVo();
                tempActionList.Add(v);
                action.Photo = tempActionList.ToArray();
            }
        }

        // talks
        {
            var talks = action.Talk;
            if (talks.Length > 0)
            {
                if (bShowTalks.Count <= 0)
                {
                    foreach (var talk in talks)
                    {
                        bShowTalks.Add(true);
                    }
                }

                int removeIndex = -1;
                EditorGUILayout.BeginVertical(subGroupStyle);
                for (int i = 0; i < talks.Length; ++i)
                {
                    //bShowTalks[i] = EditorGUILayout.Foldout(bShowTalks[i], "Talks(" + (i + 1) + ")");
                    //if (bShowTalks[i])
                    EditorGUILayout.Foldout(true, "Talks(" + (i + 1) + ")");
                    {
                        EditorGUILayout.BeginVertical("GroupBox");
                        var talk = talks[i];
                        drawTalk(talk);
                        EditorGUILayout.EndVertical();
                    }
                    if (enableAddAndRemove && GUILayout.Button("删除这个Talk"))
                    {
                        removeIndex = i;
                    }
                }
                EditorGUILayout.EndVertical();
                if (removeIndex >= 0)
                {
                    var tempList = new List <TalkVo>(talks);
                    tempList.RemoveAt(removeIndex);
                    action.Talk = tempList.ToArray();
                }
            }

            if (enableAddAndRemove && StyledButton("添加Talk"))
            {
                List <TalkVo> tempActionList = new List <TalkVo>(talks);
                TalkVo        v = new TalkVo();
                tempActionList.Add(v);
                action.Talk = tempActionList.ToArray();
            }
        }

        // NPCTalks
        {
            var npcTalks = action.NpcTalk;
            if (npcTalks.Length > 0)
            {
                if (bShowNPCTalks.Count <= 0)
                {
                    foreach (var v in npcTalks)
                    {
                        bShowNPCTalks.Add(true);
                    }
                }

                int removeIndex = -1;
                EditorGUILayout.BeginVertical(subGroupStyle);
                for (int i = 0; i < npcTalks.Length; ++i)
                {
                    //bShowNPCTalks[i] = EditorGUILayout.Foldout(bShowNPCTalks[i], "NPCTalks(" + (i+1)+ ")");
                    //if (bShowNPCTalks[i])
                    EditorGUILayout.Foldout(true, "NPCTalks(" + (i + 1) + ")");
                    {
                        EditorGUILayout.BeginVertical("GroupBox");
                        drawNPCTalk(npcTalks[i]);
                        EditorGUILayout.EndVertical();
                    }
                    if (enableAddAndRemove && GUILayout.Button("删除这个NpcTalk"))
                    {
                        removeIndex = i;
                    }
                }
                EditorGUILayout.EndVertical();
                if (removeIndex >= 0)
                {
                    var tempList = new List <NpcTalkVo>(npcTalks);
                    tempList.RemoveAt(removeIndex);
                    action.NpcTalk = tempList.ToArray();
                }
            }

            if (enableAddAndRemove && StyledButton("添加NpcTalk"))
            {
                List <NpcTalkVo> tempActionList = new List <NpcTalkVo>(npcTalks);
                NpcTalkVo        v = new NpcTalkVo();
                tempActionList.Add(v);
                action.NpcTalk = tempActionList.ToArray();
            }
        }
    }