Beispiel #1
0
 private void Awake()
 {
     INS = this;
     foreach (var VARIABLE in StoryBlocks)
     {
         VARIABLE.OnInit();
     }
 }
Beispiel #2
0
    void OnGUI()
    {
        GUILayout.Label("故事区块编辑器", EditorStyles.boldLabel);
        //通过EditorGUILayout.ObjectField可以接受Object类型的参数进行相关操作
        //Button
        // BlockManager = EditorGUILayout.ObjectField("故事区块管理器",BlockManager, typeof(StoryBlockManager), true)as StoryBlockManager;
        BlockManager = GameObject.FindObjectOfType <StoryBlockManager>();
        if (BlockManager != null)
        {
            InputInfo   = EditorPrefs.GetString("BlockName");
            BlockPrefab = EditorGUILayout.ObjectField("故事区块预制物", BlockPrefab, typeof(GameObject), true) as GameObject;
            InputInfo   = EditorGUILayout.TextField("区块名称", InputInfo);
            EditorPrefs.SetString("BlockName", InputInfo);
            if (GUILayout.Button("新建一个故事区块"))
            {
                if (BlockPrefab != null)
                {
                    DuplicateBlock(BlockPrefab);
                }
                else
                {
                    CreateNewBlock(InputInfo);
                }
            }

            BlockIndex = EditorPrefs.GetInt("BlockIndex");
            BlockIndex = EditorGUILayout.IntField("区块序号", BlockIndex);
            EditorPrefs.SetInt("BlockIndex", BlockIndex);
            if (GUILayout.Button(String.Format("跳跃到{0}区块", BlockIndex)))
            {
                BlockManager.JumpBlock(BlockIndex);
            }
            EditorGUILayout.LabelField(String.Format("区块总数:{0}", BlockManager.StoryBlocks.Count), EditorStyles.boldLabel);
            for (int i = 0; i < BlockManager.StoryBlocks.Count; i++)
            {
                if (BlockManager.StoryBlocks[i] != null)
                {
                    BlockManager.StoryBlocks[i] = EditorGUILayout.ObjectField(String.Format("故事区块{1}——{0}", BlockManager.StoryBlocks[i]._BlockName, i), BlockManager.StoryBlocks[i], typeof(StoryBlock), true) as StoryBlock;
                    BlockManager.StoryBlocks[i].transform.SetAsLastSibling();
                }
            }
        }
        else
        {
            if (GUILayout.Button("新建一个故事区块管理器"))
            {
                var Manager = new GameObject().AddComponent <StoryBlockManager>();
                Manager.transform.name = "StoryBlockManager";
            }
        }
    }