public void SetCameraCtrlMode(CTRL_MODE mode, bool bChangeYaw, bool bChangePitch, bool bChangeDist, bool isImmediately) { _DestCamCtrlMode = mode; SetCamParams(_IsLockCurState, 10); SetToDefaultCamera(bChangeYaw, bChangePitch, bChangeDist, isImmediately); }
public FlyTask(CameraCtrl pCtrl, CTRL_MODE eMode, Vector3 mTarget, float nLng, float nLat, float nDistance, float nPitch, float nYaw) { m_pCameraCtrl = pCtrl; m_eMode = eMode; m_mTarget = mTarget; m_nLng = nLng; m_nLat = nLat; m_nDistance = nDistance; m_nPitch = nPitch; m_nYaw = nYaw; }
public void ResetCameraMode() //去掉lockdir { CTRL_MODE new_mode = _DestCamCtrlMode; _CamLockPriority = -1; _CamCtrlMode = new_mode; _LockConfigs.Clear(); { _CamLockPriority = 10; _CamCtrlMode = _DestCamCtrlMode; _LockConfigs.Add(10, _DestCamCtrlMode); } }
/// 立即设置新的摄像机控制模式。 public void Jump(CTRL_MODE eMode, object pParam_) { m_eCtrlMode = eMode; if (CTRL_MODE.REMOTE == eMode) { RemoteParam pParam = (RemoteParam)pParam_; m_nLng = pParam.m_nLng; m_nLat = pParam.m_nLat; m_nDistance = pParam.m_nHeight; m_nPitch = 90.0f; m_nYaw = 0.0f; m_mTarget = Vector3.zero; } else if (CTRL_MODE.EAGLE == eMode) { EagleParam pParam = (EagleParam)pParam_; m_nLng = pParam.m_nLng; m_nLat = pParam.m_nLat; m_nDistance = pParam.m_nDistance; m_nPitch = pParam.m_nPitch; m_nYaw = pParam.m_nYaw; m_mTarget = Vector3.zero; } else if (CTRL_MODE.PANORAMA == eMode) { PanoramaParam pParam = (PanoramaParam)pParam_; m_nLng = pParam.m_nLng; m_nLat = pParam.m_nLat; m_nDistance = pParam.m_nDistance; m_nPitch = pParam.m_nPitch; m_nYaw = pParam.m_nYaw; m_mTarget = pParam.m_mTarget; } else if (CTRL_MODE.WANDER == eMode) { WanderParam pParam = (WanderParam)pParam_; m_nLng = pParam.m_nLng; m_nLat = pParam.m_nLat; m_nDistance = 0.0f; m_nPitch = pParam.m_nPitch; m_nYaw = pParam.m_nYaw; //m_mTarget = pParam.m_mTarget; } }
public void SetCamParams(bool is_locked, int priority) { _IsLockCurState = is_locked; CTRL_MODE new_mode = _DestCamCtrlMode; if (_LockConfigs.ContainsKey(priority)) { _LockConfigs[priority] = new_mode; } else { _LockConfigs.Add(priority, new_mode); } if (priority < _CamLockPriority) { return; } _CamLockPriority = priority; _CamCtrlMode = new_mode; if (!is_locked)//高优先级的如果解锁,自动回到低优先级状态(这里是默认状态) { _CamLockPriority = 10; if (_LockConfigs.TryGetValue(10, out new_mode)) { _CamCtrlMode = new_mode; } else { _CamCtrlMode = _DestCamCtrlMode; _LockConfigs.Add(10, _DestCamCtrlMode); } } }
public static bool Is3DCameraMode(CTRL_MODE mode) { return(mode == CTRL_MODE.FOLLOW || mode == CTRL_MODE.FIX3D); }
/// 飞行切换到指定状态。 public void Fly(CTRL_MODE eMode, Vector3 mTarget, float nLng, float nLat, float nDistance, float nPitch, float nYaw) { m_pFlyTask = new FlyTask(this, eMode, mTarget, nLng, nLat, nDistance, nPitch, nYaw); }