APM/Assets/Scripting/Khac/DisplayPosition.cs
2025-11-17 15:02:30 +07:00

39 lines
1.3 KiB
C#

using UnityEngine;
using TMPro; // Sử dụng TextMeshPro
public class DisplayPosition : MonoBehaviour
{
// Gán TextMeshProUGUI trong Inspector
public TextMeshProUGUI positionText;
void Update()
{
// Lấy vị trí của đối tượng
Vector3 position = transform.position;
float displayEulerY = NormalizeEulerAngle(-transform.eulerAngles.y); // Giữ nguyên hiển thị
float theta = NormalizeAngle(2 * Mathf.PI - transform.eulerAngles.y * Mathf.Deg2Rad); // Công thức mới
// Hiển thị tọa độ x và z
string positionInfo = $"X: {position.x:F2} \n" +
$"Y: {position.z:F2} \n" +
$"Theta: {displayEulerY:F2}" ;
// Cập nhật TextMeshProUGUI
if (positionText != null)
{
positionText.text = positionInfo;
}
}
public float NormalizeEulerAngle(float angleDeg)
{
while (angleDeg > 180f) angleDeg -= 360f;
while (angleDeg < -180f) angleDeg += 360f;
return angleDeg;
}
public float NormalizeAngle(float angleRad)
{
while (angleRad > Mathf.PI) angleRad -= 2 * Mathf.PI;
while (angleRad < -Mathf.PI) angleRad += 2 * Mathf.PI;
return angleRad;
}
}