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

举报
CoderZ1010 发表于 2022/09/25 06:04:14 2022/09/25
【摘要】 目录 一、简介 二、功能 1.键盘控制移动 2.视角拉近拉远 3.视角旋转 4.视角聚焦 5.活动区域限制 三、核心变量  一、简介 RoamCameraController是用于漫游视角的相机控制脚本,同时支持Input System Package(New)和Input Manager(Old)新...

目录

一、简介

二、功能

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函数实现视角的聚焦:


  
  1. /// <summary>
  2. /// 聚焦
  3. /// </summary>
  4. /// <param name="position">目标位置</param>
  5. /// <param name="rotation">目标旋转</param>
  6. /// <param name="duration">时长</param>
  7. public void Focus(Vector3 position, Vector3 rotation, float duration);

5.活动区域限制

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

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

三、核心变量 

toggle:控制系统的开关

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

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

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

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

translateSpeed:移动的速度

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

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

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

mouseMovementSensitivity:鼠标灵敏度

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

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

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

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

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

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/125164161

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。