56 lines
1.5 KiB
C#
56 lines
1.5 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
public class ItemPickup : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
[Header("Settings")]
|
|||
|
|
[SerializeField] float speed = 2f; // <20><><EFBFBD>ư<EFBFBD><C6B0><EFBFBD> <20>ӵ<EFBFBD>
|
|||
|
|
[SerializeField] float pickUpDistance = 0.5f; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
[SerializeField] int healAmount = 10; // ȸ<><C8B8><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
private PlayerController player;
|
|||
|
|
private bool isTargeting = false; // <20>÷<EFBFBD><C3B7>̾ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
|
|||
|
|
|
|||
|
|
void Start()
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> PlayerController<65><72> ã<>Ƽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
player = FindAnyObjectByType<PlayerController>();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void Update()
|
|||
|
|
{
|
|||
|
|
if (player == null) return;
|
|||
|
|
|
|||
|
|
// <20>÷<EFBFBD><C3B7>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> (2D)
|
|||
|
|
float distance = Vector2.Distance(transform.position, player.transform.position);
|
|||
|
|
|
|||
|
|
// 1. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ȿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ų<D4B0>, <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>
|
|||
|
|
if (distance <= pickUpDistance || isTargeting)
|
|||
|
|
{
|
|||
|
|
isTargeting = true; // <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
|
|||
|
|
// <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>
|
|||
|
|
transform.position = Vector2.MoveTowards(transform.position, player.transform.position, speed * Time.deltaTime);
|
|||
|
|
|
|||
|
|
// 2. <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ȹ<><C8B9>)
|
|||
|
|
if (distance < 0.05f)
|
|||
|
|
{
|
|||
|
|
GetItem();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void GetItem()
|
|||
|
|
{
|
|||
|
|
// <20>÷<EFBFBD><C3B7>̾<CCBE><EEBFA1> ü<><C3BC> ȸ<><C8B8> <20><>û
|
|||
|
|
/*if (player != null)
|
|||
|
|
{
|
|||
|
|
player.Heal(healAmount);
|
|||
|
|
}*/
|
|||
|
|
|
|||
|
|
// ȹ<><C8B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>ʿ<EFBFBD><CABF><EFBFBD> <20>߰<EFBFBD>)
|
|||
|
|
// AudioSource.PlayClipAtPoint(clip, transform.position);
|
|||
|
|
|
|||
|
|
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȹ<><C8B9>!");
|
|||
|
|
Destroy(gameObject); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
}
|