43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
/// <20><> Transform<72><6D> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20>ִ<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EEB3AA> <20>ʵ<EFBFBD><CAB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public class TargetRangeLimiter : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
[Header("Range Limit")]
|
|||
|
|
[SerializeField] private Transform centerPoint;
|
|||
|
|
|
|||
|
|
[SerializeField] private float maxDistance = 2.0f;
|
|||
|
|
|
|||
|
|
// LateUpdate<74><65> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20>ٸ<EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
|||
|
|
private void LateUpdate()
|
|||
|
|
{
|
|||
|
|
if (centerPoint == null)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 1. <20>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Vector3 directionFromCenter = transform.position - centerPoint.position;
|
|||
|
|
float currentDistance = directionFromCenter.magnitude;
|
|||
|
|
|
|||
|
|
// 2. <20><><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>ִ<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>ʰ<EFBFBD><CAB0>ߴ<EFBFBD><DFB4><EFBFBD> Ȯ<><C8AE>
|
|||
|
|
if (currentDistance > maxDistance)
|
|||
|
|
{
|
|||
|
|
// 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ä, <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>ִ<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>ο<EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
|||
|
|
Vector3 newPosition = centerPoint.position + directionFromCenter.normalized * maxDistance;
|
|||
|
|
|
|||
|
|
// 4. <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
transform.position = newPosition;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> <20>۾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
//private void OnDrawGizmosSelected()
|
|||
|
|
//{
|
|||
|
|
// if (centerPoint != null)
|
|||
|
|
// {
|
|||
|
|
// Gizmos.color = Color.green;
|
|||
|
|
// Gizmos.DrawWireSphere(centerPoint.position, maxDistance);
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
}
|