GQ_Communicate/GQ_URP/GQ/Assets/script/UI/AutoScaleUI.cs

38 lines
1.1 KiB
C#

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<Canvas>();
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;
}
}