์ด์•Œ์„ ์™ผ์ชฝ์œผ๋กœ๋งŒ ์˜๊ณ  ์˜ค๋ฅธ ํŽธ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋„˜์–ด๊ฐ€๋„ ์™ผ์ชฝ์œผ๋กœ๋งŒ์˜๋ฉด์„œ ๋”ฐ๋ผ์˜ต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•ด์•ผํ• ๊นŒ์š”



using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Away_Enemy : MonoBehaviour
{
ย 
ย  public float distance;
ย  public LayerMask isLayer;
ย  public float speed;
ย  ย  Rigidbody2D rb;
ย  ย  Transform target;
ย  ย  public GameObject bullet;
ย  ย 

ย  ย  [Header("์ถ”๊ฒฉ ์†๋„")]
ย  ย  [SerializeField] [Range(1f, 4f)] float moveSpeed = 3f;

ย  ย  [Header("๊ทผ์ ‘ ๊ฑฐ๋ฆฌ")]
ย  ย  [SerializeField] [Range(0f, 3f)] float contactDistance = 1f;

ย  ย  bool follow = false;
ย  ย  public float atkDistance;
ย  ย  public Transform pos;
ย  ย  void Start()
ย  ย  { ย 
ย  ย  ย  ย  rb = GetComponent<Rigidbody2D>();
ย  ย  ย  ย  target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
ย  ย  ย  ย  ย  StartCoroutine(Bullet());
ย  ย  }





void Update()
ย  ย  {
ย  ย  ย  ย  FollowTarget();
ย  ย  ย 
ย  ย  }

ย  ย  void FollowTarget()
ย  ย  {
ย  ย  ย  ย  if (Vector2.Distance(transform.position, target.position) > contactDistance && follow)
ย  ย  ย  ย  ย  ย  transform.position = Vector2.MoveTowards(transform.position, target.position, moveSpeed * Time.deltaTime);
ย  ย  ย  ย  else
ย  ย  ย  ย  ย  ย  rb.velocity = Vector2.zero;
ย  ย  }

ย  ย  private void OnTriggerEnter2D(Collider2D collision)
ย  ย  {
ย  ย  ย  ย  follow = true;
ย  ย  }

ย  ย  private void OnTriggerExit2D(Collider2D collision)
ย  ย  {
ย  ย  ย  ย  follow = false;
ย  ย  }
ย  ย 
IEnumerator Bullet(){
ย  ย  ย  ย  Instantiate(bullet, transform.position, transform.rotation);
ย  ย  ย  ย  yield return new WaitForSeconds(3.0f);
ย  ย  ย  ย  StartCoroutine(Bullet());
}
}