当前位置:网站首页>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:垂直方向上旋转的最小角度值
边栏推荐
- 国内首款、完全自主、基于云架构的三维CAD平台——CrownCAD(皇冠CAD)
- [opencv learning] [image histogram and equalization]
- Js7day (event object, event flow, event capture and bubble, prevent event flow, event delegation, student information table cases)
- C#运算符
- Js1day (syntaxe d'entrée / sortie, type de données, conversion de type de données, Var et let différenciés)
- JSON serialization and parsing
- 线性DP AcWing 898. 数字三角形
- JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)
- Redis transaction mechanism implementation process and principle, and use transaction mechanism to prevent inventory oversold
- What data types does redis have and their application scenarios
猜你喜欢

Ntmfs4c05nt1g N-ch 30V 11.9a MOS tube, pdf

Tencent three sides: in the process of writing files, the process crashes, and will the file data be lost?
![JDBC 预防sql注入问题与解决方法[PreparedStatement]](/img/32/f71f5a31cdf710704267ff100b85d7.png)
JDBC 预防sql注入问题与解决方法[PreparedStatement]

腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?

Does C language srand need to reseed? Should srand be placed in the loop? Pseudo random function Rand

线性DP AcWing 899. 编辑距离

计数类DP AcWing 900. 整数划分

JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)
![[opencv learning] [image filtering]](/img/4c/fe22e9cdf531873a04a7c4e266228d.jpg)
[opencv learning] [image filtering]

3 A VTT端接 稳压器 NCP51200MNTXG资料
随机推荐
How can attribute mapping of entity classes be without it?
Std:: vector batch import fast de duplication method
[opencv learning] [image pyramid]
8A 同步降压稳压器 TPS568230RJER_规格信息
Efficiency comparison between ArrayList and LinkedList
Oracle从入门到精通(第4版)
. Net, C # basic knowledge
JDBC 预防sql注入问题与解决方法[PreparedStatement]
Mui WebView down refresh pull-up load implementation
面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六
Does C language srand need to reseed? Should srand be placed in the loop? Pseudo random function Rand
百款拿来就能用的网页特效,不来看看吗?
PXE installation UOS prompt NFS over TCP not available from 10 x.x.x
计数类DP AcWing 900. 整数划分
The coloring method determines the bipartite graph acwing 860 Chromatic judgement bipartite graph
Five best software architecture patterns that architects must understand
West digital decided to raise the price of flash memory products immediately after the factory was polluted by materials
Linear DP acwing 902 Shortest editing distance
Rust language document Lite (Part 1) - cargo, output, basic syntax, data type, ownership, structure, enumeration and pattern matching
通过反射执行任意类的任意方法