using UnityEngine; public class ItemPickup : MonoBehaviour { [Header("Settings")] [SerializeField] float speed = 2f; // ³¯¾Æ°¡´Â ¼Óµµ [SerializeField] float pickUpDistance = 0.5f; // °¨Áö ¹üÀ§ [SerializeField] int healAmount = 10; // ȸº¹·® private PlayerController player; private bool isTargeting = false; // Ç÷¹À̾ µû¶ó°¡´Â ÁßÀÎÁö üũ void Start() { // ¾À¿¡ ÀÖ´Â PlayerController¸¦ ã¾Æ¼­ ÀúÀå player = FindAnyObjectByType(); } void Update() { if (player == null) return; // Ç÷¹À̾î¿ÍÀÇ °Å¸® °è»ê (2D) float distance = Vector2.Distance(transform.position, player.transform.position); // 1. °¨Áö ¹üÀ§ ¾È¿¡ µé¾î¿Ô°Å³ª, ÀÌ¹Ì µû¶ó°¡´Â ÁßÀ̶ó¸é if (distance <= pickUpDistance || isTargeting) { isTargeting = true; // ÇÑ ¹ø °¨ÁöµÇ¸é ³¡±îÁö µû¶ó°¨ (¼±Åà »çÇ×) // Ç÷¹À̾î ÂÊÀ¸·Î À̵¿ transform.position = Vector2.MoveTowards(transform.position, player.transform.position, speed * Time.deltaTime); // 2. Ç÷¹ÀÌ¾î ¸ö¿¡ ´êÀ» Á¤µµ·Î °¡±î¿öÁö¸é (ȹµæ) if (distance < 0.05f) { GetItem(); } } } void GetItem() { // Ç÷¹À̾°Ô ü·Â ȸº¹ ¿äû /*if (player != null) { player.Heal(healAmount); }*/ // ȹµæ »ç¿îµå (ÇÊ¿ä½Ã Ãß°¡) // AudioSource.PlayClipAtPoint(clip, transform.position); Debug.Log("¾ÆÀÌÅÛ È¹µæ!"); Destroy(gameObject); // ¾ÆÀÌÅÛ »èÁ¦ } }