当前位置:网站首页>Unity SKFramework框架(十八)、RoamCameraController 漫游视角相机控制脚本
Unity SKFramework框架(十八)、RoamCameraController 漫游视角相机控制脚本
2022-07-02 09:45:00 【CoderZ1010】
目录
一、简介
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函数实现视角的聚焦:
/// <summary>
/// 聚焦
/// </summary>
/// <param name="position">目标位置</param>
/// <param name="rotation">目标旋转</param>
/// <param name="duration">时长</param>
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:垂直方向上旋转的最小角度值
边栏推荐
- Hundreds of web page special effects can be used. Don't you come and have a look?
- Docsify deploy IIS
- JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)
- 面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六
- Structured data, semi-structured data and unstructured data
- Linear DP acwing 898 Number triangle
- Hash table acwing 840 Simulated hash table
- 三面阿里,有惊无险成功拿到offer定级P7,只能说是真的难
- JSON serialization and parsing
- Ruby: how to copy variables without pointing to the same object- Ruby: how can I copy a variable without pointing to the same object?
猜你喜欢
[opencv learning] [common image convolution kernel]
JDBC prevent SQL injection problems and solutions [preparedstatement]
传感器 ADXL335BCPZ-RL7 3轴 加速度计 符合 RoHS/WEEE
js4day(DOM开始:获取DOM元素内容,修改元素样式,修改表单元素属性,setInterval定时器,轮播图案例)
Domestic free data warehouse ETL dispatching automation operation and maintenance expert taskctl
线性DP AcWing 895. 最长上升子序列
The redis development document released by Alibaba covers all redis operations
模数转换器(ADC) ADE7913ARIZ 专为三相电能计量应用而设计
Redis bloom filter
NTMFS4C05NT1G N-CH 30V 11.9A MOS管,PDF
随机推荐
Rust search server, rust quick service finding tutorial
自主可控三维云CAD:CrownCAD赋能企业创新设计
C modifier
js 迭代器 生成器 异步代码处理 promise+生成器 -> await/async
Dijkstra AcWing 850. Dijkstra finding the shortest circuit II
基于STM32的OLED 屏幕驱动
Browser node event loop
Ali was killed by two programming problems at the beginning, pushed inward again, and finally landed (he has taken an electronic offer)
What data types does redis have and their application scenarios
接口测试面试题目,你都会了吗?
Window10 upgrade encountered a big hole error code: 0xc000000e perfect solution
Counting class DP acwing 900 Integer partition
[opencv learning] [image filtering]
阿里发布的Redis开发文档,涵盖了所有的redis操作
Interval DP acwing 282 Stone merging
计数类DP AcWing 900. 整数划分
JS6day(DOM结点的查找、增加、删除。实例化时间,时间戳,时间戳的案例,重绘和回流)
spfa AcWing 852. SPFA judgement negative ring
Linear DP acwing 898 Number triangle
[opencv learning] [common image convolution kernel]