public override SteeringOutput.SteeringOutput getSteering() { GameObject dummy = (GameObject)MonoBehaviour.Instantiate(Resources.Load("Prefab/Dummy")); AgentMeta dummyAgent = dummy.GetComponent <AgentMeta> (); if ((Character.getPosition() - path.Nodes[i]).magnitude < 1) { i++; if (path.Nodes.Count == i) { i = 0; } Debug.Log("NODE: " + path.Nodes [i].ToString()); } dummyAgent.setPosition(path.Nodes[i]); //MonoBehaviour.print(dummyAgent.getPosition ()); Behaviour seek = new ArriveWhileLooking(dummyAgent, Character, 1f, 0.5f, 0.1f); SteeringOutput.SteeringOutput steering = seek.getSteering(); MonoBehaviour.Destroy(dummy); return(steering); }
public override SteeringOutput.SteeringOutput getSteering() { SteeringOutput.SteeringOutput steering = new SteeringOutput.SteeringOutput(new Vector2(0.0f, 0.0f), 0.0f); Behaviour selectedBehaviour; float orientationDiff = Mathf.Abs(Target.orientation - Character.orientation - 180f); if (orientationDiff < stalkRadius) { selectedBehaviour = new FleeWhileLooking(Target, Character); } else { selectedBehaviour = new ArriveWhileLooking(Target, Character, 3f, 1f, .1f); } steering = selectedBehaviour.getSteering(); return(steering); }