/// <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);
        }
Example #2
0
        private void HandleFacing()
        {
            if (mLookPoint == null)
            {
                return;
            }

            JCS_Camera cam = JCS_Camera.main;

            Vector3 newPos    = this.transform.localPosition;
            Vector3 direction = Vector3.zero;

            if (JCS_Input.GetKey(mUpKey))
            {
                direction = cam.transform.forward;
            }
            else if (JCS_Input.GetKey(mDownKey))
            {
                direction = -cam.transform.forward;
            }

            if (JCS_Input.GetKey(mRightKey))
            {
                direction += cam.transform.right;
            }
            else if (JCS_Input.GetKey(mLeftKey))
            {
                direction += -cam.transform.right;
            }

            mLookPoint.localPosition = newPos + direction * mLookDistance;
        }
Example #3
0
        /* Setter & Getter */

        /* Functions */

        private void Awake()
        {
            instance = CheckSingleton(instance, this);

            JCS_IO.CreateDirectory(JCS_GameData.SavePath());
            JCS_IO.CreateDirectory(JCS_Camera.SavePath());
            JCS_IO.CreateDirectory(JCS_Webcam.SavePath());
            JCS_IO.CreateDirectory(JCS_StreamingAssets.CachePath());
        }
        /*******************************************/
        /*            Unity's function             */
        /*******************************************/
        private void Awake()
        {
            // try to get camera from it transform.
            if (this.mCamera == null)
            {
                this.mCamera = this.GetComponent <JCS_Camera>();
            }

            SetEffectCamera(this.mCamera);
        }
        /* Setter & Getter */

        /* Functions */

        private void Awake()
        {
            instance = CheckSingleton(instance, this);

            REAL_DATA_PATH            = JCS_AppData.SavePath();
            REAL_SCREENSHOT_PATH      = JCS_Camera.SavePath();
            REAL_WEBCAM_PATH          = JCS_Webcam.SavePath();
            REAL_STREAMING_CACHE_PATH = JCS_StreamingAssets.CachePath();

            JCS_IO.CreateDirectory(REAL_DATA_PATH);
            JCS_IO.CreateDirectory(REAL_SCREENSHOT_PATH);
            JCS_IO.CreateDirectory(REAL_WEBCAM_PATH);
            JCS_IO.CreateDirectory(REAL_STREAMING_CACHE_PATH);
        }
Example #6
0
        /// <summary>
        /// Make a 3D game object to canvas space position.
        ///
        /// NOTE(jenchieh): Make world space game object on top of
        /// the UI object (canvas space).
        /// </summary>
        /// <param name="pos"></param>
        /// <returns></returns>
        public Vector3 CastToWorld(Vector2 pos)
        {
            JCS_Camera jcsCam = JCS_Camera.main;

            switch (GetObjectType())
            {
            case JCS_UnityObjectType.GAME_OBJECT:
            case JCS_UnityObjectType.SPRITE:
            {
                this.LocalPosition = jcsCam.CanvasToWorldSpace(pos) + mPositionOffset;
            }
            break;
            }

            return(this.LocalPosition);
        }
Example #7
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);
        }
        /// <summary>
        /// Return the screen size according to the GUI mode.
        /// </summary>
        /// <returns>
        /// Return a Vector2 with screen width and height.
        /// </returns>
        private Vector2 GetScreenSize()
        {
            float screenWidth  = 0.0f;
            float screenHeight = 0.0f;

            JCS_ScreenSettings ss  = JCS_ScreenSettings.instance;
            JCS_Camera         cam = JCS_Camera.main;

            JCS_PanelRoot panelRoot = mPanelHolder.slidePanels[0].GetComponent <JCS_PanelRoot>();

            if (panelRoot == null)
            {
                panelRoot = mPanelHolder.slidePanels[0].GetComponentInParent <JCS_PanelRoot>();
            }

            switch (mUnityGUIType)
            {
            case JCS_UnityGUIType.uGUI_2D:
            {
                if (panelRoot != null)
                {
                    screenWidth  = ss.STARTING_SCREEN_SIZE.width;
                    screenHeight = ss.STARTING_SCREEN_SIZE.height;
                }
                else
                {
                    screenWidth  = ss.STANDARD_SCREEN_SIZE.width;
                    screenHeight = ss.STANDARD_SCREEN_SIZE.height;
                }
            }
            break;

            case JCS_UnityGUIType.nGUI_3D:
            {
                screenWidth  = cam.CamRectSize.x;
                screenHeight = cam.CamRectSize.y;
            }
            break;
            }

            return(new Vector2(screenWidth, screenHeight));
        }
        //========================================
        //      Unity's function
        //------------------------------
        private void FixedUpdate()       /* Should use FixedUpdate if no jitter. */
        {
            if (mLayerFriction == 0)
            {
                return;
            }

            JCS_Camera cam = JCS_Camera.main;

            if (cam == null)
            {
                return;
            }

            Vector3 newPos = this.transform.position;

            newPos.x += cam.Velocity.x / mLayerFriction * Time.deltaTime;
            newPos.y += cam.Velocity.y / mLayerFriction * Time.deltaTime;
            this.transform.position = newPos;
        }
Example #10
0
        /* Functions */

        protected virtual void Awake()
        {
            main = this;

            this.mCamera = this.GetComponent <Camera>();
        }
        /*******************************************/
        /*              Self-Define                */
        /*******************************************/
        //----------------------
        // Public Functions

        /// <summary>
        /// Apply the effect of the camera.
        /// </summary>
        public void SetEffectCamera(JCS_Camera cam)
        {
            this.mCamera = cam;
        }