Пример #1
0
    public void SetCameraCtrlMode(CTRL_MODE mode, bool bChangeYaw, bool bChangePitch, bool bChangeDist, bool isImmediately)
    {
        _DestCamCtrlMode = mode;
        SetCamParams(_IsLockCurState, 10);

        SetToDefaultCamera(bChangeYaw, bChangePitch, bChangeDist, isImmediately);
    }
Пример #2
0
 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;
 }
Пример #3
0
    public void ResetCameraMode()           //去掉lockdir
    {
        CTRL_MODE new_mode = _DestCamCtrlMode;

        _CamLockPriority = -1;
        _CamCtrlMode     = new_mode;

        _LockConfigs.Clear();
        {
            _CamLockPriority = 10;

            _CamCtrlMode = _DestCamCtrlMode;
            _LockConfigs.Add(10, _DestCamCtrlMode);
        }
    }
Пример #4
0
    /// 立即设置新的摄像机控制模式。
    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;
        }
    }
Пример #5
0
    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);
            }
        }
    }
Пример #6
0
 public static bool Is3DCameraMode(CTRL_MODE mode)
 {
     return(mode == CTRL_MODE.FOLLOW || mode == CTRL_MODE.FIX3D);
 }
Пример #7
0
 /// 飞行切换到指定状态。
 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);
 }