using System.Collections; using System.Collections.Generic; using UnityEngine; using BITKit; using UnityEngine.Events; using UnityEngine.UIElements; namespace BITKit { public class WorldToScreenPoint : MonoBehaviour { [Header(Constant.Header.Settings)] [SerializeField] Transform root; [SerializeField] Vector3 offset; [SerializeField] Optional activeDistance; [Header(Constant.Header.Events)] [SerializeField] private UnityEvent setHeaderEnabled; [SerializeField] private UnityEvent setHeaderPosition; Transform cameraTrans; void Start() { if (Camera.main != null) cameraTrans = Camera.main.transform; } void Update() { var position = root.position + root.rotation * offset; setHeaderPosition.Invoke(position); if (activeDistance.Allow) { var distance = Vector3.Distance(position, cameraTrans.position); var _enabled = distance < activeDistance; setHeaderEnabled.Invoke(_enabled); } } } }