public override void DoAction(StateController2 controller)
    {
        Rigidbody2D     rb2d = controller.GetComponent <Rigidbody2D>();
        AIMovementData2 data = controller.GetComponent <AIMovementData2>();

        if (rb2d && data)
        {
            Vector3 playerPosition = TopdownCharacter.instance.transform.position;
            Vector3 agentPosition  = controller.transform.position;

            Vector3 moveDirection = playerPosition - agentPosition;

            rb2d.velocity = moveDirection.normalized * data.moveSpeed;
        }
    }
Example #2
0
    public override void DoAction(StateController2 controller)
    {
        Rigidbody2D rb2d = controller.GetComponent <Rigidbody2D>();

        if (rb2d)
        {
            rb2d.velocity = Vector2.zero;
        }
    }
    public override bool CheckCondition(StateController2 controller)
    {
        AIDetectionData2 data = controller.GetComponent <AIDetectionData2>();

        if (data)
        {
            Vector3 playerPosition = TopdownCharacter.instance.transform.position;
            Vector3 agentPosition  = controller.transform.position;

            float distance = Vector2.Distance(playerPosition, agentPosition);

            return(distance < data.followRange);
        }
        return(false);
    }