public static void Init() { // Get existing open window or if none, make a new one: window = (CollectibleEditorWindow)EditorWindow.GetWindow(typeof(CollectibleEditorWindow)); window.minSize = new Vector2(615, 250); window.maxSize = new Vector2(615, 251); EditorCollectibleList eCollectibleList = CollectibleManagerWindow.LoadCollectible(); prefab = eCollectibleList.prefab; collectibleList = prefab.collectibleList; nameList = eCollectibleList.nameList; int enumLength = Enum.GetValues(typeof(_EffectAttrType)).Length; effectTypeLabel = new string[enumLength]; effectTypeTooltip = new string[enumLength]; for (int i = 0; i < enumLength; i++) { effectTypeLabel[i] = ((_EffectAttrType)i).ToString(); } for (int i = 0; i < enumLength; i++) { effectTypeTooltip[i] = ""; } effectTypeTooltip[0] = "Reduce target's HP"; effectTypeTooltip[1] = "Restore target's HP"; effectTypeTooltip[2] = "Reduce target's AP"; effectTypeTooltip[3] = "Restore target's AP"; effectTypeTooltip[4] = "Increase/decrease target's damage"; effectTypeTooltip[5] = "Increase/decrease target's movement range"; effectTypeTooltip[6] = "Increase/decrease target's attack range"; effectTypeTooltip[7] = "Increase/decrease target's speed"; effectTypeTooltip[8] = "Increase/decrease target's attack"; effectTypeTooltip[9] = "Increase/decrease target's defend"; effectTypeTooltip[10] = "Increase/decrease target's critical chance"; effectTypeTooltip[11] = "Increase/decrease target's critical immunity"; effectTypeTooltip[12] = "Increase/decrease target's attack per turn"; effectTypeTooltip[13] = "Increase/decrease target's counter attack limit "; effectTypeTooltip[14] = "Stun target, stop target from doing anything"; effectTypeTooltip[15] = "Prevent target from attack"; effectTypeTooltip[16] = "Prevent target from moving"; effectTypeTooltip[17] = "Prevent target from using ability"; effectTypeTooltip[18] = "Faction gain points"; }
public static void Init() { // Get existing open window or if none, make a new one: window = (CollectibleEditorWindow)EditorWindow.GetWindow(typeof (CollectibleEditorWindow)); window.minSize=new Vector2(615, 250); window.maxSize=new Vector2(615, 251); EditorCollectibleList eCollectibleList=CollectibleManagerWindow.LoadCollectible(); prefab=eCollectibleList.prefab; collectibleList=prefab.collectibleList; nameList=eCollectibleList.nameList; int enumLength = Enum.GetValues(typeof(_EffectAttrType)).Length; effectTypeLabel=new string[enumLength]; effectTypeTooltip=new string[enumLength]; for(int i=0; i<enumLength; i++) effectTypeLabel[i]=((_EffectAttrType)i).ToString(); for(int i=0; i<enumLength; i++) effectTypeTooltip[i]=""; effectTypeTooltip[0]="Reduce target's HP"; effectTypeTooltip[1]="Restore target's HP"; effectTypeTooltip[2]="Reduce target's AP"; effectTypeTooltip[3]="Restore target's AP"; effectTypeTooltip[4]="Increase/decrease target's damage"; effectTypeTooltip[5]="Increase/decrease target's movement range"; effectTypeTooltip[6]="Increase/decrease target's attack range"; effectTypeTooltip[7]="Increase/decrease target's speed"; effectTypeTooltip[8]="Increase/decrease target's attack"; effectTypeTooltip[9]="Increase/decrease target's defend"; effectTypeTooltip[10]="Increase/decrease target's critical chance"; effectTypeTooltip[11]="Increase/decrease target's critical immunity"; effectTypeTooltip[12]="Increase/decrease target's attack per turn"; effectTypeTooltip[13]="Increase/decrease target's counter attack limit "; effectTypeTooltip[14]="Stun target, stop target from doing anything"; effectTypeTooltip[15]="Prevent target from attack"; effectTypeTooltip[16]="Prevent target from moving"; effectTypeTooltip[17]="Prevent target from using ability"; effectTypeTooltip[18]="Faction gain points"; }
static void OpenCollectibleEditorWindow() { CollectibleEditorWindow.Init(); }
void OnGUI() { if (window == null) { Init(); } #if !UNITY_4_3 Undo.SetSnapshotTarget(this, "UnitManagerWindow"); #else Undo.RecordObject(this, "UnitManagerWindow"); #endif int currentItemCount = collectibleList.Count; if (GUI.Button(new Rect(window.position.width - 120, 5, 110, 25), "CollectibleEditor")) { this.Close(); CollectibleEditorWindow.Init(); } EditorGUI.LabelField(new Rect(5, 10, 150, 17), "Add new unit:"); newCollectible = (CollectibleTB)EditorGUI.ObjectField(new Rect(100, 10, 150, 17), newCollectible, typeof(CollectibleTB), false); if (newCollectible != null) { if (!collectibleList.Contains(newCollectible)) { int rand = 0; while (collectibleIDList.Contains(rand)) { rand += 1; } collectibleIDList.Add(rand); newCollectible.prefabID = rand; collectibleList.Add(newCollectible); GUI.changed = true; } newCollectible = null; } if (collectibleList.Count > 0) { GUI.Box(new Rect(5, 40, 50, 20), "ID"); GUI.Box(new Rect(5 + 50 - 1, 40, 60 + 1, 20), "Icon"); GUI.Box(new Rect(5 + 110 - 1, 40, 160 + 2, 20), "Name"); GUI.Box(new Rect(5 + 270, 40, window.position.width - 300, 20), ""); } scrollPos = GUI.BeginScrollView(new Rect(5, 60, window.position.width - 12, window.position.height - 50), scrollPos, new Rect(5, 55, window.position.width - 30, 15 + ((collectibleList.Count)) * 50)); int row = 0; for (int i = 0; i < collectibleList.Count; i++) { if (i % 2 == 0) { GUI.color = new Color(.8f, .8f, .8f, 1); } else { GUI.color = Color.white; } GUI.Box(new Rect(5, 60 + i * 49, window.position.width - 30, 50), ""); GUI.color = Color.white; if (currentSwapID == i) { GUI.color = new Color(.9f, .9f, .0f, 1); } if (GUI.Button(new Rect(19, 12 + 60 + i * 49, 30, 30), collectibleList[i].prefabID.ToString())) { if (currentSwapID == i) { currentSwapID = -1; } else if (currentSwapID == -1) { currentSwapID = i; } else { SwapCollectible(i); GUI.changed = true; } } if (currentSwapID == i) { GUI.color = Color.white; } if (collectibleList[i] != null) { collectibleList[i].icon = (Texture)EditorGUI.ObjectField(new Rect(12 + 50, 3 + 60 + i * 49, 44, 44), collectibleList[i].icon, typeof(Texture), false); collectibleList[i].collectibleName = EditorGUI.TextField(new Rect(5 + 120, 6 + 60 + i * 49, 150, 17), collectibleList[i].collectibleName); EditorGUI.LabelField(new Rect(5 + 120, 6 + 60 + i * 49 + 20, 150, 17), "Prefab:"); EditorGUI.ObjectField(new Rect(5 + 165, 6 + 60 + i * 49 + 20, 105, 17), collectibleList[i].gameObject, typeof(GameObject), false); } if (delete != i) { if (GUI.Button(new Rect(window.position.width - 55, 12 + 60 + i * 49, 25, 25), "X")) { delete = i; } } else { GUI.color = Color.red; if (GUI.Button(new Rect(window.position.width - 90, 12 + 60 + i * 49, 60, 25), "Remove")) { if (currentSwapID == i) { currentSwapID = -1; } collectibleIDList.Remove(collectibleList[i].prefabID); collectibleList.RemoveAt(i); delete = -1; //~ if(onCreepUpdateE!=null) onCreepUpdateE(); GUI.changed = true; } GUI.color = Color.white; } row += 1; } GUI.EndScrollView(); if (GUI.changed || currentItemCount != collectibleList.Count) { EditorUtility.SetDirty(prefab); for (int i = 0; i < collectibleList.Count; i++) { EditorUtility.SetDirty(collectibleList[i]); } } #if UNITY_LE_4_3 if (GUI.changed || currentItemCount != collectibleList.Count) { Undo.CreateSnapshot(); Undo.RegisterSnapshot(); } Undo.ClearSnapshotTarget(); #endif }