示例#1
0
    public override AgentInput Execute(StateInstance instance, BehaviourContext context)
    {
        var pursueInstance = instance as PursueStateInstance;

        pursueInstance.CurrentRepathTimer -= Time.deltaTime;

        if (pursueInstance.CurrentRepathTimer <= 0)
        {
            pursueInstance.CurrentRepathTimer = RepathTimer;
            context.SetTarget(pursueInstance.Target.transform.position);
        }

        var direction = (context.AiAgent.ProxyObject.nextPosition - context.Agent.transform.position).normalized;
        var result    = new AgentInput {
            MovementDirection = direction,
            RotationDirection = direction,
            Done = false
        };

        return(result);
    }