using TMPro; using UnityEngine; using UnityEngine.UI; public class AutoScaleUI : MonoBehaviour { [SerializeField] private Camera targetCamera; [SerializeField] private float distanceMultiplier = 0.01f; private Canvas canvas; private Vector3 initialScale; public Button button; public TextMeshProUGUI text; //public static Transform Camera; void Start() { //Debug.Log("°æ±¾ºÅ 1.1.1"); targetCamera = UnityEngine.Camera.main; //Camera = UnityEngine.Camera.main.transform; canvas = GetComponent(); initialScale = transform.localScale; //Debug.Log("°æ±¾ºÅ 1.1.1"); } void LateUpdate() { //transform.eulerAngles = Camera.eulerAngles; Vector3 cameraToCanvasPlane = transform.position - targetCamera.transform.position; float distance = Vector3.Dot(cameraToCanvasPlane, targetCamera.transform.forward); if (distance * distanceMultiplier > 1) distance = 1f / distanceMultiplier; transform.localScale = initialScale * distance * distanceMultiplier; } }