public override void Invoke()
 {
     var targetPos = target.transform.position + offset;
     Vector3 viewPortPos = CameraUtility.CachedCamera().WorldToViewportPoint(targetPos);
     Vector2 screenPos = viewPortPos * canvasRect.sizeDelta;
     rect.anchoredPosition = screenPos;
     rect.gameObject.SetActive(viewPortPos.z > 0);
 }
示例#2
0
        public override void Invoke()
        {
            var targetWorld = target.transform.position + offset;
            var targetLocal = CameraUtility.CachedCamera().transform.InverseTransformPoint(targetWorld);
            // var thetaX = Mathf.Cos(targetLocal.)
            var polarX = Math.CartesianToPolar(targetLocal.ZX());
            var polarY = Math.CartesianToPolar(targetLocal.ZY());

            var quadX = Mathf.Tan(polarX.theta) * quadOffset;
            var quadY = Mathf.Tan(polarY.theta) * quadOffset;

            // quadX.

            // Vector3 viewPortPos = CameraUtility.CachedCamera().WorldToViewportPoint(targetPos);
            // Vector2 screenPos = viewPortPos * canvasRect.sizeDelta;
            rect.anchoredPosition = new Vector2(quadX, quadY);
            // Debug.Log($"target - local:{targetLocal}");
            rect.gameObject.SetActive(targetLocal.z > 0);
        }
示例#3
0
 void OnEnable()
 {
     GetComponent <Canvas>().worldCamera = CameraUtility.CachedCamera();
 }