Untitled
unknown
csharp
5 months ago
1.9 kB
52
Indexable
using UnityEngine; // This script is for an enemy that will follow a player by searching for a 'Player' tag - Gatsby public class Enemy : MonoBehaviour { public float moveSpeed = 2f; // Movement speed of the enemy private Transform target; // Target to follow (player's transform when detected) private SpriteRenderer _spriteRenderer; public void Awake() { _spriteRenderer = GetComponent<SpriteRenderer>(); } private void Update() { // If a target is set (player is within range), follow the target if (target != null) { FollowTarget(); } } private void FollowTarget() { // Calculate direction towards the target Vector2 direction = (target.position - transform.position).normalized; _spriteRenderer.flipX = direction.x > 0; // Move the enemy towards the target transform.position = Vector2.MoveTowards(transform.position, target.position, moveSpeed * Time.deltaTime); } private void OnTriggerEnter2D(Collider2D other) { // Check if the collided object has the "Player" tag if (other.CompareTag("Player")) { target = other.transform; // Set the player's transform as the target } } private void OnTriggerExit2D(Collider2D other) { // If the player leaves the detection range, clear the target if (other.CompareTag("Player")) { target = null; // Stop following the player } } private void OnDrawGizmosSelected() { // Visualize the detection range in the editor using the collider's radius Gizmos.color = Color.red; Gizmos.DrawWireSphere(transform.position, GetComponent<CircleCollider2D>().radius); } }
Editor is loading...
Leave a Comment