Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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);
        }
    }
Beispiel #3
0
    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);
        }
    }