您当前的位置: 首页 >  unity

CoderZ1010

暂无认证

  • 2浏览

    0关注

    168博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity SKFramework框架(十八)、RoamCameraController 漫游视角相机控制脚本

CoderZ1010 发布时间:2022-06-07 14:44:37 ,浏览量:2

目录

一、简介

二、功能

1.键盘控制移动

2.视角拉近拉远

3.视角旋转

4.视角聚焦

5.活动区域限制

三、核心变量 

一、简介

RoamCameraController是用于漫游视角的相机控制脚本,同时支持Input System Package(New)和Input Manager(Old)新、旧两种输入系统。

该工具已经上传至我的框架SKFramework中的开发工具箱,如图所示。

框架已经在Github开源,地址:https://github.com/136512892/SKFramework

二、功能 1.键盘控制移动

通过键盘W、S、A、D、E、Q按键分别实现向前、后、左、右、上、下方向的移动:

2.视角拉近拉远

通过鼠标滚轮的滚动实现视角的拉近或拉远,作用等同于W、S按键:

3.视角旋转

通过按住鼠标右键并进行拖动实现视角的旋转:

通过设置verticalLimitMax、verticalLimitMin来限制在垂直方向上的旋转角度,以防止相机”倒立“。

4.视角聚焦

通过调用Focus函数实现视角的聚焦:

/// 
/// 聚焦
/// 
/// 目标位置
/// 目标旋转
/// 时长
public void Focus(Vector3 position, Vector3 rotation, float duration);

5.活动区域限制

通过启用IsRangeClamped来实现活动范围的限制:

通过设置xMinValue...zMaxValue调整活动范围,如图所示,绿色线条形成的区域即活动的范围,相机运动不会超出该区域:

三、核心变量 

toggle:控制系统的开关

isRangeClamped:是否启用活动区域限制

xMinValue、xMaxValue:在x轴上的活动区域范围,当isRangeClamped为true时起作用

yMinValue、yMaxValue:在y轴上的活动区域范围,当isRangeClamped为true时起作用

zMinValue、zMaxValue:在z轴上的活动区域范围,当isRangeClamped为true时起作用

translateSpeed:移动的速度

boost:加速系数,当按下键盘左边的Shift键时会加速移动

positionLerpTime:坐标插值到目标值所需时长

rotationLerpTime:旋转插值到目标值所需时长

mouseMovementSensitivity:鼠标灵敏度

mouseScrollMoveSpeed:鼠标滚轮滚动时视角拉近拉远的速度

invertScrollDirection:是否反转鼠标滚轮滚动时视角拉近拉远的方向

invertY:是否反转垂直方向上旋转的方向

verticalLimitMax:垂直方向上旋转的最大角度值

verticalLimitMin:垂直方向上旋转的最小角度值

关注
打赏
1653184800
查看更多评论
立即登录/注册

微信扫码登录

0.0991s