summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSUnitBuilder.cs
blob: b8d9b0c80b7c6cc7b9cef0b060bf92bec2397b00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using UnityEngine;
using System.Collections;

namespace Pathfinding.Examples.RTS {
	[HelpURL("https://arongranberg.com/astar/documentation/stable/rtsunitbuilder.html")]
	public class RTSUnitBuilder : MonoBehaviour {
		[System.Serializable]
		public class BuildingItem {
			public GameObject prefab;
			public int cost;
			public RTSUI.MenuItem menuItem;
		}

		public BuildingItem[] items;
		RTSUnit unit;
		RTSUI.Menu menu;

		void Awake () {
			unit = GetComponent<RTSUnit>();

			unit.onMakeActiveUnit += (bool active) => {
				if (active) {
					menu = RTSUI.active.ShowMenu();
					for (int i = 0; i < items.Length; i++) {
						var item = items[i];
						menu.AddItem(item.menuItem, () => {
							RTSUI.active.StartBuildingPlacement(item);
						});
					}
				} else if (menu != null) menu.Hide();
			};
		}
	}
}