Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本
目录
一、简介
二、功能
1.键盘控制平移
2.鼠标控制平移
3.视角拉近拉远
4.绕视角中心旋转
5.视角聚焦
6.活动区域限制
7.闲置时绕视角中心旋转
三、核心变量
一、简介
FreeCameraController是用于上帝视角、自由视角的相机控制脚本,同时支持Input System Package(New)和Input Manager(Old)新、旧两种输入系统。
该工具已经上传至我的框架SKFramework中的开发工具箱,如图所示。
框架已经在Github开源,地址:https://github.com/136512892/SKFramework
二、功能
1.键盘控制平移
通过键盘W、S、A、D、E、Q按键分别实现向前、后、左、右、上、下方向的平移:
2.鼠标控制平移
通过按住鼠标左键进行拖拽实现平移:
3.视角拉近拉远
通过鼠标滚轮的滚动实现视角的拉近或拉远:
4.绕视角中心旋转
通过按住鼠标右键并拖拽实现视角绕中心点旋转:
5.视角聚焦
通过调用Focus函数实现视角的聚焦:
/// <summary>
/// 聚焦
/// </summary>
/// <param name="position">目标位置</param>
/// <param name="rotation">目标旋转</param>
/// <param name="duration">时长</param>
public void Focus(Vector3 position, Vector3 rotation, float duration);
6.活动区域限制
通过启用IsRangeClamped来实现活动范围的限制:
通过设置xMinValue...zMaxValue调整活动范围,如图所示,绿色线条形成的区域即活动的范围,相机运动不会超出该区域:
7.闲置时绕视角中心旋转
当用户在一定的时长内没有任何操作时,进入闲置状态,相机自动绕视角中心旋转,该功能通过启用enableAutoIdle实现:
三、核心变量
toggle:控制系统的开关
isRangeClamped:是否启用活动区域限制
xMinValue、xMaxValue:在x轴上的活动区域范围,当isRangeClamped为true时起作用
yMinValue、yMaxValue:在y轴上的活动区域范围,当isRangeClamped为true时起作用
zMinValue、zMaxValue:在z轴上的活动区域范围,当isRangeClamped为true时起作用
translateSpeed:平移的速度
boost:加速系数,当按下键盘左边的Shift键时会加速移动
positionLerpTime:坐标插值到目标值所需时长
rotationLerpTime:旋转插值到目标值所需时长
mouseMovementSensitivity:鼠标左键拖拽移动的灵敏度
mouseRotationSensitivityCurve:鼠标右键拖拽旋转的灵敏度
mouseScrollMoveSpeed:鼠标滚轮滚动时视角拉近拉远的速度
invertScrollDirection:是否反转鼠标滚轮滚动时视角拉近拉远的方向
enableAutoIdle:是否启用自动进入闲置状态
idleWaitTime:当用户在该时长内没有任何操作时,进入闲置状态,相机自动绕视角中心旋转,当enableAutoIdle为true时起作用
idleRotateSpeed:处于闲置状态时,绕视角中心旋转的速度
Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本相关推荐
- Unity SKFramework框架(十九)、POI 兴趣点/信息点
目录 一.简介 二.使用说明 1.二维与三维的匹配 2.移除 3.UI分辨率 4.Camera相机 三.Example 示例 一.简介 POI可以理解为场景中的一些有意义的点,例如车站.商场.医院.监 ...
- Unity SKFramework框架(二十四)、Avatar Controller 第三人称控制
目录 一.简介 二.使用说明 1.人物控制 2.相机控制 三.参数说明 1.Avatar Controller 2.Camera Controller 一.简介 Avatar Controller适用 ...
- Unity SKFramework框架(二十三)、MiniMap 小地图工具
目录 简介 实现原理 使用说明 简介 MiniMap可以帮助我们快速实现小地图功能,该工具已经上传至我的开发框架SKFramework中的Package Manager开发工具包管理器中,如图所示,点 ...
- Unity(三十七):3D模型动画、脚本控制模型骨骼IK动画
效果(左侧模型动画,右侧模型IK控制) 模型动画下载及导入 推荐模型动画下载链接地址 https://actorcore.reallusion.com/ Unity导入教程参见以下链接地址(需要科学上 ...
- Unity SKFramework框架(二十一)、Texture Filter 贴图资源筛选工具
目录 简介 使用步骤 1.选中所有Texture贴图 2.打开Texture Filter工具 3.指定筛选类型 4.Filter 进行过滤 简介 如图所示,在Unity Project窗口中我们可以 ...
- Unity SKFramework框架(二十五)、RSA算法加密、签名工具 RSA Crypto
目录 简介 函数 1.pem公钥内容转xml 2.pem私钥内容转xml 3.使用公钥对数据进行加密 4.使用私匙对待签名内容进行签名 示例 简介 在调用Java后端接口,需要使用后端提供的pem私钥 ...
- Unity SKFramework框架(十一)、ActionChain 事件链
目录 一.Action 事件 1.Simple 普通事件 2.Delay 延迟事件 3.Timer 定时事件 4.Until 条件事件 5.While 条件事件 6.Tween 动画事件 7.Anim ...
- unity简单自由漫游摄像机控制脚本
"幽灵视角",适合用来漫游场景 把代码加载到摄像机上 using System.Collections; using System.Collections.Generic; usi ...
- 【Unity入门计划】2D游戏实现敌人来回移动控制脚本
目录 移动脚本 控制界面 效果 学习的教程 [unity2021入门教程]74-2D游戏开发教程系列-03-RubyAdventure2DRpg官方教程-22-移动敌人方式2_哔哩哔哩_bilibil ...
最新文章
- Postmortem报告
- Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?(一作解读)...
- Android第十五课 Jni自带的iconv库不支持GBK转码
- N900 Dual boot(meego maemo)
- 用户密码和cookie,session、token还有AKSK
- Angular jasmine单元测试框架里describe的实现原理
- Springboot2 搭建 高性能Websocket服务器
- 对于DSH算法损失函数的理解
- Oracle系统中表外键的更名
- 苹果新专利曝光,可通过GPS和视觉识别器来识别车辆
- Ubuntu 20.04部署minikube配置不上阿里云的minikube镜像
- 自己编写的中文字符串的截取函数
- 使用蛋白质和mRNA序列信息预测蛋白质亚线粒体定位
- 计算机在随机抽样上的应用,使用计算机随机分组与随机抽样的方法及应用
- JAVA程序员工作常用英语
- vue项目如何打包以及如何变成android、ios应用程序
- php selectradio和checkbox默认选择的实现方法
- 工作20天之感悟(嵌入式开发)
- 【SQL】SQL如何使0值升序排序时排最后
- Aleo Wagyu钱包