agv 개발
This commit is contained in:
@@ -12,13 +12,9 @@ namespace UVC.UI.Info
|
||||
/// 3D 객체를 따라다니며 정보를 표시하는 UI 창입니다.
|
||||
/// 이 컴포넌트는 World Space Canvas 내의 UI 요소에 추가되어야 합니다.
|
||||
/// </summary>
|
||||
public class InfoWindow : MonoBehaviour
|
||||
public class InfoWindow : SingletonScene<InfoWindow>
|
||||
{
|
||||
|
||||
[Tooltip("InfoWindow의 프리팹")]
|
||||
[SerializeField]
|
||||
private static GameObject infoWindowPrefab;
|
||||
|
||||
[Tooltip("정보 텍스트를 표시할 UI 요소")]
|
||||
[SerializeField]
|
||||
private TextMeshProUGUI infoText;
|
||||
@@ -34,30 +30,16 @@ namespace UVC.UI.Info
|
||||
// 정보 창이 따라다닐 3D 객체의 Transform
|
||||
private Transform? target;
|
||||
|
||||
// 메인 카메라 참조
|
||||
private Camera mainCamera;
|
||||
|
||||
/// <summary>
|
||||
/// 정보 창이 현재 화면에 표시되고 있는지 여부를 반환합니다.
|
||||
/// </summary>
|
||||
public bool IsVisible => gameObject.activeSelf;
|
||||
|
||||
/// <summary>
|
||||
/// 정보 창을 생성하여 반환합니다.
|
||||
/// </summary>
|
||||
public static InfoWindow? Create()
|
||||
{
|
||||
if(infoWindowPrefab == null)
|
||||
{
|
||||
Debug.LogError("InfoWindow 프리팹이 할당되지 않았습니다. Inspector에서 할당해주세요.");
|
||||
return null;
|
||||
}
|
||||
return Instantiate(infoWindowPrefab).GetComponent<InfoWindow>();
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
protected override void Awake()
|
||||
{
|
||||
mainCamera = Camera.main;
|
||||
base.Awake();
|
||||
|
||||
// 닫기 버튼이 할당되었으면 클릭 이벤트를 연결합니다.
|
||||
if (closeButton != null)
|
||||
@@ -79,9 +61,6 @@ namespace UVC.UI.Info
|
||||
{
|
||||
// 위치 업데이트
|
||||
transform.position = target.position + worldOffset;
|
||||
|
||||
// 항상 카메라를 바라보도록 방향 업데이트 (빌보드 효과)
|
||||
transform.rotation = mainCamera.transform.rotation;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user