/// <summary> /// Issues a move order to all selected Actor objects /// </summary> /// <param name="eventData"></param> public void IssueMoveOrder(PointerEventData eventData) { GuiController.HideContextMenu(); //this should be done diffently, but for some reason I'm getting 0,0,0 world position Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(Camera.main.transform.position, ray.direction, out hit, Mathf.Infinity, 1 << LayerMask.NameToLayer("Terrain"))) { foreach (NeolithicObject s in selected) { ActorController a = s.GetComponent <ActorController>(); if (a) { BaseOrder move = new SimpleMoveOrder(a, hit.point); if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { a.EnqueueOrder(move); } else { a.OverrideOrder(move); } } } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); ActorController a = (ActorController)target; if (GUILayout.Button("Panic")) { GameObject go = GameObject.Find("DumpingGround"); var order = new SimpleMoveOrder(a, go.transform.position); a.Panic(order); } }