private void Awake() { INS = this; foreach (var VARIABLE in StoryBlocks) { VARIABLE.OnInit(); } }
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"; } } }