/// <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); }
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; }
/* 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); }
/// <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); }
//======================================== // 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; }
/* 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; }