示例#1
0
 public override void GetAction()
 {
     //Changes speed of character
     invocant.GetComponent <Agent>().maxSpeed = speed;
     invocant.GetComponent <Agent>().maxAcc   = (speed * 2) + 10;
     if (newTargetNode == -1)
     {
         if (invocant.name == "Monster_Anger")
         {
             newTargetNode = pathFollowing.graph.GetNearestNodeByCenter(GameObject.Find("Monster_Fear").transform.position);
         }
         else if (invocant.name == "Monster_Sadness")
         {
             newTargetNode = pathFollowing.graph.GetNearestNodeByCenter(GameObject.Find("Monster_Happiness").transform.position);
         }
     }
     //New target node is going to be an adyacent one
     if (pathFollowing.path.Count == 0)
     {
         List <int> adyacents = graph.GetNodeAdyacents(newTargetNode);
         if (invocant.name == "Monster_Anger")
         {
             newTargetNode = graph.GetNearestAdyacentNodeByCenter(GameObject.Find("Monster_Fear").transform.position, adyacents);
         }
         else if (invocant.name == "Monster_Sadness")
         {
             newTargetNode = graph.GetNearestAdyacentNodeByCenter(GameObject.Find("Monster_Happiness").transform.position, adyacents);
         }
         pathFollowing.ChangeEndNode(newTargetNode);
     }
 }