private void PrepareNivose() { // _mOrigPosition = Globals.Instance.MSceneManager.mMainCamera.transform.position; // _mOrigEulerAngles = Globals.Instance.MSceneManager.mMainCamera.transform.rotation.eulerAngles; // _mOrigCullingMask = Globals.Instance.MSceneManager.mMainCamera.cullingMask; // // Globals.Instance.MSceneManager.mMainCamera.transform.position = _mSkillUser.U3DGameObject.transform.position + new Vector3(0.0f, 50.0f, -100.0f); // Globals.Instance.MSceneManager.mMainCamera.transform.LookAt(_mSkillUser.U3DGameObject.transform.position); int cullingMask = LayerMaskDefine.GetCullMaskEveryThing(); cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.GUI); cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER); Globals.Instance.MSceneManager.mMainCamera.cullingMask = cullingMask; // Duplicate a RTT camera GameObject cam = new GameObject(); cam.name = "RttCamera"; _mRTTCam = cam.AddComponent(typeof(Camera)) as Camera; _mRTTCam.CopyFrom(Globals.Instance.MSceneManager.mMainCamera); _mRTTCam.cullingMask = LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER); _mRTTCam.clearFlags = CameraClearFlags.Depth; _mRTTCam.depth = Globals.Instance.MSceneManager.mMainCamera.depth + 2; _mRTTCam.gameObject.tag = TagMaskDefine.UNTAGGED; // A transparent plane CreateOcclusionPlane(); }
// Update is called once per frame public override void Update() { if (_mSkillIsEnd) { return; } _mCurrentTrackTime += Time.deltaTime; if (!_mIsFireParticleCreated) { CreateFireParticle(); } if (null != _mRTTCam) { _mRTTCam.transform.position = Globals.Instance.MSceneManager.mMainCamera.transform.position; _mRTTCam.transform.rotation = Globals.Instance.MSceneManager.mMainCamera.transform.rotation; } switch (_mSkillState) { case SkillState.FIRE: { if (_mFireDuration <= 0.0f) { if (!_mIsFlyParticleCreated) { CreateFlyParticle(); } } _mFireDuration -= Time.deltaTime; break; } case SkillState.FLY: { if (null != _mRTTCam) { if (null != _mOcclusionPlane) { GameObject.Destroy(_mOcclusionPlane); } _mOcclusionPlane = null; GameObject.Destroy(_mRTTCam.gameObject); _mRTTCam = null; int cullingMask = LayerMaskDefine.GetCullMaskEveryThing(); cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.GUI); cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER); Globals.Instance.MSceneManager.mMainCamera.cullingMask = cullingMask; LayerMaskDefine.SetLayerRecursively(_mSkillUser.U3DGameObject, LayerMaskDefine.DEFAULT); } break; } case SkillState.HIT_TARGET: { if (null != _mFollowTarget) { // iTween.MoveTo(Globals.Instance.MSceneManager.mMainCamera.gameObject, _mOrigPosition, 1.5f); // iTween.RotateTo(Globals.Instance.MSceneManager.mMainCamera.gameObject, _mOrigEulerAngles, 1.5f); } break; } case SkillState.END: { break; } } if (!CheckSkill()) { return; } }