//public List<Upgrade> Upgrades { get; set; } //public ResourceButton ResourceButton { get; set; } /* * New Goals: * Add a panel for storing Generators (display and purchase) * Panel should be maintained by a System * System stores a list of added Generators (we have this as GeneratorSystem) * When a new Generator is added, put it in the store * Sort by buy price (we need a buy price) * Fade/Disable/Something when we don't have enough of the required resources * Enable when we do * On Click, add to the right kind of Generator */ public Resource() { Details = new ResourceDetail() { Type = ResourceType.Gold, Quantity = 0, PerClick = 1, Name = "Gold" }; Generators = new List <Generator>(); Generators.Add(GeneratorSystem.AddGenerator(new Generator() { Type = ResourceType.Gold, Quantity = 1, PerPeriod = 0.1M, PeriodDuration = 1, TimeAccumulated = 0, BaseName = "Pickaxe" })); Generators.Add(GeneratorSystem.AddGenerator(new Generator() { Type = ResourceType.Gold, Quantity = 1, PerPeriod = 1, PeriodDuration = 1, TimeAccumulated = 0, BaseName = "Miner" })); BindGenerators(); }
public override void OnInspectorGUI() { GeneratorSystem obj = target as GeneratorSystem; //追加ボタン EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Add", GUILayout.Width(160f), GUILayout.Height(15f))) { obj.Add_List(0); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); for (int i = 0; i < obj.list.Count; i++) { EditorGUILayout.BeginVertical(GUI.skin.box); obj.list[i].name = EditorGUILayout.TextField("", obj.list[i].name, GUILayout.Height(20)); obj.list[i].kind = (GeneratorSystem.Kind)EditorGUILayout.EnumPopup("Kind", obj.list[i].kind); obj.list[i].obj = (GameObject)EditorGUILayout.ObjectField("Obj", obj.list[i].obj, typeof(GameObject), false); obj.list[i].parent = (GameObject)EditorGUILayout.ObjectField("Parent", obj.list[i].parent, typeof(GameObject), true); obj.list[i].is_Object_Pool = EditorGUILayout.Toggle("ObjectPool", obj.list[i].is_Object_Pool); GUILayout.Space(5); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); GUILayout.Space(5); obj.list[i].num = EditorGUILayout.IntField("Num", obj.list[i].num); obj.list[i].pos_Kind = (GeneratorSystem.PosKind)EditorGUILayout.EnumPopup("Position Type", obj.list[i].pos_Kind); if (obj.list[i].kind == GeneratorSystem.Kind.liner) { obj.list[i].liner.initial_Pos = EditorGUILayout.Vector2Field("InitialPos", obj.list[i].liner.initial_Pos); if (obj.list[i].num > 1) { obj.list[i].liner.inter_Vector = EditorGUILayout.Vector2Field("InterSpace", obj.list[i].liner.inter_Vector); } } else if (obj.list[i].kind == GeneratorSystem.Kind.rotate) { obj.list[i].rotate.center_Pos = EditorGUILayout.Vector2Field("Center", obj.list[i].rotate.center_Pos); EditorGUILayout.BeginHorizontal(); { obj.list[i].rotate.radius = EditorGUILayout.FloatField("Radius", obj.list[i].rotate.radius); if (obj.list[i].num > 1) { obj.list[i].rotate.spread_Radius = EditorGUILayout.FloatField("SpreadRad", obj.list[i].rotate.spread_Radius); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { obj.list[i].rotate.initial_Angle_Deg = EditorGUILayout.FloatField("InitialAngle[deg]", obj.list[i].rotate.initial_Angle_Deg); if (obj.list[i].num > 1) { obj.list[i].rotate.inter_Angle_Deg = EditorGUILayout.FloatField("InterAngle[deg]", obj.list[i].rotate.inter_Angle_Deg); } } EditorGUILayout.EndHorizontal(); } if (obj.list[i].num > 1) { obj.list[i].span = EditorGUILayout.FloatField("Span[s]", obj.list[i].span); } obj.list[i].after_Span = EditorGUILayout.FloatField("AfterSpan[s]", obj.list[i].after_Span); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); //削除ボタン EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Remove", GUILayout.Width(160f), GUILayout.Height(15f))) { obj.Remove_List(i); } GUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); //追加ボタン EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Add", GUILayout.Width(160f), GUILayout.Height(15f))) { obj.Add_List(i + 1); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } EditorUtility.SetDirty(obj); }