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);
    }
Example #2
0
    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);
    }