/// <summary>
        /// Make a canvas space object to a world space position.
        ///
        /// NOTE(jenchieh): Make UI object (canvas space) on top of the
        /// world space game object.
        /// </summary>
        /// <param name="pos"></param>
        /// <returns></returns>
        public Vector3 CastToScreen(Vector3 pos)
        {
            JCS_Camera   jcsCam   = JCS_Camera.main;
            JCS_ResizeUI resizeUI = JCS_ResizeUI.instance;

            Vector3 positionOffset = mPositionOffset;

            if (mPanelRoot != null)
            {
                positionOffset.x /= mPanelRoot.PanelDeltaWidthRatio;
                positionOffset.y /= mPanelRoot.PanelDeltaHeightRatio;
            }

            switch (GetObjectType())
            {
            case JCS_UnityObjectType.TEXT:
            case JCS_UnityObjectType.UI:
            {
                Vector2 worldToCanvasSpace = jcsCam.WorldToCanvasSpace(pos);

                float targetScale = resizeUI.TargetScale;

                if (targetScale != 0.0f)
                {
                    worldToCanvasSpace.x /= resizeUI.TargetScale;
                    worldToCanvasSpace.y /= resizeUI.TargetScale;
                }

                this.LocalPosition = worldToCanvasSpace + (Vector2)positionOffset;
            }
            break;
            }

            return(this.LocalPosition);
        }
Exemple #2
0
        //========================================
        //      Self-Define
        //------------------------------
        //----------------------
        // Public Functions

        /// <summary>
        ///
        /// </summary>
        /// <param name="pos"></param>
        /// <returns></returns>
        public Vector3 CastToScreen(Vector3 pos)
        {
            JCS_Camera jcsCam = JCS_Camera.main;

            switch (GetObjectType())
            {
            case JCS_UnityObjectType.TEXT:
            case JCS_UnityObjectType.UI:
            {
                this.LocalPosition = jcsCam.WorldToCanvasSpace(pos) + (Vector2)mPositionOffset;
            }
            break;
            }

            return(this.LocalPosition);
        }