public override void Update(float deltaTime) { base.Update(deltaTime); if (m_fRestTimer > 0) { m_fRestTimer -= deltaTime; if (m_fRestTimer < 0) { m_fRestTimer = 0; } float t = m_fRestTimer / m_fRestTime; m_fPitch = iTween.Easing(CameraDefine.m_fCameraPitchDefault, m_fOldPitch, t, iTween.EaseType.easeOutQuad); m_fYaw = iTween.Easing(CameraDefine.m_fCameraYawDefault, m_fOldYaw, t, iTween.EaseType.easeOutQuad); m_fDistance = iTween.Easing(CameraDefine.m_fCameraDistanceDefault, m_fOldDistance, t, iTween.EaseType.easeOutQuad); m_TargetOffset.y = iTween.Easing(CameraDefine.m_CameraTargetOffset.y, m_fOldTargetPffsetY, t, iTween.EaseType.easeOutQuad); m_bDirty = true; } // 处理震动 ApplyRock(); // 摄像机动画 ApplyAnim(); // 摄像机旋转 Vector3 cameraEuler = new Vector3(Pitch, Yaw, 0); CameraManager.Instance.MainCameraTrans.rotation = Quaternion.Euler(cameraEuler); if (m_State == null) { return; } m_State.UpdateCamera(); Vector3 cameraPos = m_State.CameraPos; //Vector3 starePos = m_State.StarePos; //Vector3 cameraDir = starePos - cameraPos; // 不用判断,调用前判断了 //if (CameraManager.Instance.MainCameraTrans == null) return; if (Singleton <CameraManager> .Instance.IsDuangCamera == true) { CameraManager.Instance.MainCameraTrans.position = Vector3.Lerp(CameraManager.Instance.MainCameraTrans.position, cameraPos, Time.deltaTime * 8.0f); } else { CameraManager.Instance.MainCameraTrans.position = cameraPos; } //CameraManager.Instance.MainCameraTrans.rotation = Quaternion.LookRotation(new Vector3(cameraDir.x, cameraDir.y, cameraDir.z)); }