38 lines
1.1 KiB
C#
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;
|
|
}
|
|
|
|
}
|