private void CamMoveFar() { try { // 设置数据 NearCamStage newStage = _StageCfg._Stage - 1; _StageCfg = _ProfCfg.GetCurStageData(newStage); _PitchDeg = ClampPitch(_PitchDeg); if (newStage == NearCamStage.Body) { _DistOffset = _ProfCfg.DefaultParams.z; } else { _DistOffset = ClampDistOffset(_DistOffset); } ApplyDirAndUp(); // 相机开始移动 float real_height_offset = GetRealHeightOffset(); var cam_dest_pos = GetRealLookAtPos(real_height_offset) - _RealDir * _DistOffset; DoCamMove(false, cam_dest_pos, real_height_offset, _StageCfg._FOV, null); } catch (System.Exception e) { HobaDebuger.LogErrorFormat("CPlayerNearCam Move Far Exception:{0}", e.Message); } }
public void SetCameraLocation(int type, LuaFunction callback) { _CtrlType = type; if (type == 1) { //进入近景模式 if (LookAtTarget == null) { HobaDebuger.LogError("CPlayerNearCam SetCameraLocation to Near failed, Host Player got null."); return; } if (_ProfCfg == null) { HobaDebuger.LogError("CPlayerNearCam SetCameraLocation failed, Prof Config got null."); return; } _OriginLookAtPos = CCamCtrlMan.Instance.GetLookAtPosOfGameModel(); _OriginFOV = Main.Main3DCamera.fieldOfView; RollSensitivity = 0.05f; _IsQuitNearCam = false; try { _StageCfg = _ProfCfg.GetCurStageData(NearCamStage.Body); InitDefaultParams(); float real_height_offset = GetRealHeightOffset(); _CurLookAtPos = GetRealLookAtPos(real_height_offset); _IsEnterNearCam = true; EnableCameraEffect(true); var cam_dest_pos = GetRealLookAtPos(real_height_offset) - _RealDir * _DistOffset; DoCamMove(true, cam_dest_pos, real_height_offset, _StageCfg._FOV, callback); } catch (System.Exception e) { HobaDebuger.LogErrorFormat("CPlayerNearCam SetCameraLocation to Near Exception:{0}", e.Message); } } else if (type == 2) { //退出近景模式 if (LookAtTarget == null) { HobaDebuger.LogError("CPlayerNearCam SetCameraLocation to Far failed, Host Player got null."); return; } LuaScriptMgr.Instance.CallLuaFunction("OpenOrCloseUIPanel", "CPanelUINearCam", false); CCamCtrlMan.Instance.GetGameCamCtrl().SetToDefaultCamera(false, false, true, true); _IsQuitNearCam = true; EnableCameraEffect(false); EnableLookIK(false); float des_height_offset = CCamCtrlMan.Instance.GetGameCamCtrl().GetHeightOffset(); var dest_game_cam_pos = GetGameCamPosAfterCollionFix(des_height_offset); DoCamMove(false, dest_game_cam_pos, des_height_offset, _OriginFOV, null); } }
private void CamMoveNear() { try { // 设置数据 NearCamStage newStage = _StageCfg._Stage + 1; _StageCfg = _ProfCfg.GetCurStageData(newStage); _PitchDeg = ClampPitch(_PitchDeg); _DistOffset = _StageCfg._DistanceLimit.y; ApplyDirAndUp(); // 相机开始移动 float real_height_offset = GetRealHeightOffset(); var cam_dest_pos = GetRealLookAtPos(real_height_offset) - _RealDir * _DistOffset; DoCamMove(true, cam_dest_pos, real_height_offset, _StageCfg._FOV, null); } catch (System.Exception e) { HobaDebuger.LogErrorFormat("CPlayerNearCam Move Near Exception:{0}", e.Message); } }