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; } }
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); }