当前位置:网站首页>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:垂直方向上旋转的最小角度值
边栏推荐
- 模数转换器(ADC) ADE7913ARIZ 专为三相电能计量应用而设计
- Package management tools
- Some sudden program ideas (modular processing)
- 架构师必须了解的 5 种最佳软件架构模式
- Std:: vector batch import fast de duplication method
- [200 opencv routines] 100 Adaptive local noise reduction filter
- Redis sentinel mechanism and configuration
- Linear DP acwing 899 Edit distance
- Apply lnk306gn-tl converter, non isolated power supply
- Heap acwing 839 Simulated reactor
猜你喜欢

Js5day (event monitoring, function assignment to variables, callback function, environment object this, select all, invert selection cases, tab column cases)

完全自主可控三维云CAD:CrownCAD便捷的命令搜索,快速定位所需命令具体位置。

js 迭代器 生成器 异步代码处理 promise+生成器 -> await/async

Sensor adxl335bcpz-rl7 3-axis accelerometer complies with rohs/weee

Rust search server, rust quick service finding tutorial

线性DP AcWing 898. 数字三角形
![[opencv learning] [Canny edge detection]](/img/8b/37694ae2f0f13f829f3c033da0605e.jpg)
[opencv learning] [Canny edge detection]

bellman-ford AcWing 853. Shortest path with side limit

Ltc3307ahv meets EMI standard, step-down converter qca7005-al33 phy

Package management tools
随机推荐
线性DP AcWing 898. 数字三角形
The UVM Primer——Chapter2: A Conventional Testbench for the TinyALU
[opencv learning] [image histogram and equalization]
Redis bloom filter
Std:: vector batch import fast de duplication method
[opencv learning] [moving object detection]
线性DP AcWing 896. 最长上升子序列 II
[opencv learning] [template matching]
Js8day (rolling event (scroll family), offset family, client family, carousel map case (to be done))
Heap acwing 838 Heap sort
Linear DP acwing 897 Longest common subsequence
ArrayList与LinkedList效率的对比
Js5day (event monitoring, function assignment to variables, callback function, environment object this, select all, invert selection cases, tab column cases)
Ntmfs4c05nt1g N-ch 30V 11.9a MOS tube, pdf
哈希表 AcWing 840. 模拟散列表
[opencv learning] [common image convolution kernel]
Direct control PTZ PTZ PTZ PTZ camera debugging (c)
Async/await asynchronous function
What data types does redis have and their application scenarios
js5day(事件监听,函数赋值给变量,回调函数,环境对象this,全选反选案例,tab栏案例)