Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

这篇具有很好参考价值的文章主要介绍了Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、简介

二、功能

1.键盘控制平移

2.鼠标控制平移

3.视角拉近拉远

4.绕视角中心旋转

5.视角聚焦

6.活动区域限制

7.闲置时绕视角中心旋转

三、核心变量 


一、简介

FreeCameraController是用于上帝视角、自由视角的相机控制脚本,同时支持Input System Package(New)和Input Manager(Old)新、旧两种输入系统。

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

该工具已经上传至我的框架SKFramework中的开发工具箱,如图所示。

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

框架已经在Github开源,地址:https://github.com/136512892/SKFramework

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

二、功能

1.键盘控制平移

通过键盘W、S、A、D、E、Q按键分别实现向前、后、左、右、上、下方向的平移:

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

2.鼠标控制平移

通过按住鼠标左键进行拖拽实现平移:

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

3.视角拉近拉远

通过鼠标滚轮的滚动实现视角的拉近或拉远:

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

4.绕视角中心旋转

通过按住鼠标右键并拖拽实现视角绕中心点旋转:

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

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);

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

6.活动区域限制

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

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

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

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

7.闲置时绕视角中心旋转

当用户在一定的时长内没有任何操作时,进入闲置状态,相机自动绕视角中心旋转,该功能通过启用enableAutoIdle实现:

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

三、核心变量 

Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

toggle:控制系统的开关

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

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

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

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

translateSpeed:平移的速度

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

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

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

mouseMovementSensitivity:鼠标左键拖拽移动的灵敏度

mouseRotationSensitivityCurve:鼠标右键拖拽旋转的灵敏度

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

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

enableAutoIdle:是否启用自动进入闲置状态

idleWaitTime:当用户在该时长内没有任何操作时,进入闲置状态,相机自动绕视角中心旋转,当enableAutoIdle为true时起作用

idleRotateSpeed:处于闲置状态时,绕视角中心旋转的速度文章来源地址https://www.toymoban.com/news/detail-403403.html

到了这里,关于Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity】第一人称视角开发

    我的需求是在Unity构建一个第一人称视角,实现移动跳跃功能。 主要参考的是这篇博文提供的方案,不过该方案为了只允许一次跳跃,单独在人物底部构建了一个空对象,我无需此限制,因此对其进行了简化。 创建场景对象如下: Ground 地形对象 Player 胶囊体视作人物 Cube 参

    2023年04月21日
    浏览(37)
  • 【Unity】实现相机跟随及视角转动

    【unity】实现相机跟随,人物移动请参照【Unity】 实现角色移动、视角旋转以及跳跃 1.创建一个 Camera ,将 Camera 置于物体 Player 下 随意拖动 Camera 到合适的位置 具体参数【仅供参考】 运行效果如下 1.创建两个空物体 CameraHandle 和 Pivot ,将相机拖动到Pivot下,具体如图所示 其中

    2023年04月27日
    浏览(47)
  • Unity 3D 实现第一人称视角

    第一人称视角的运用十分广泛,常见于我的世界、APEX、守望先锋以及许多FPS(First-Person Shooting第一人称射击)等游戏。 那么,这类第一人称视角是如何实现的呢? 其实并不复杂, 一个人物模型 , 一个摄像机 , 一个脚本 ,便可轻松实现。 在 Hierarchy 栏目右击随机创建一个

    2024年02月11日
    浏览(36)
  • unity相机视角平移一段距离

    2024年02月12日
    浏览(31)
  • Unity 第一人称视角控制移动、旋转

    第一人称视角操作 此功能主要是借鉴YouTube上一个博主的教程,写的蛮好我就搬运过来让大家也试试。 其原理是:左右旋转是控制父物体的欧拉角的Y轴 上下点头是子物体相机的欧拉角Z轴 水平方向 跳跃: 移动

    2024年04月27日
    浏览(31)
  • Unity 第一人称视角 角色控制脚本

    使用方法 WSAD 控制四个方向的移动 鼠标 控制角色的水平、竖直朝向 空格 控制角色跳跃 配置 需要指定玩家的第一人称摄像头    效果 代码 解析 Move函数 控制角色前后左右移动,改变的是位置,并不会改变角色朝向 View函数 控制角色左右旋转,朝上或朝下看 注意:在水平方

    2023年04月19日
    浏览(32)
  • Unity视角拉近时物体缺失的问题处理

    在Unity的开发过程中,我们可能会遇到以下情况:         就是在场景的不断编辑中,突然又一次打开场景,再拉近或拉远场景视角时,会出现场景中的对象会显示不全的问题。  出现了这样的情况会让场景的预览很不友好。 出现这个问题的原因是Unity生成的场景对应的文件

    2024年02月16日
    浏览(55)
  • 【unity】Pico VR 开发笔记(视角移动)

    视角移动是简单的基础功能,这里区别于头显定位获得的小范围位移,是长距离不影响安全边界的位移方式。的 常见的位移方式有两种 ,其一是触发后 瞬间传送 到指定位置,其次是 摇杆控制视角实时移动 。XR Interaction Toolkit提供了两种位移方式的脚本,正确配置就可以实现

    2024年02月14日
    浏览(41)
  • Unity 2D视角下模拟3D环境和地形

    2D游戏若想模仿3D游戏的环境,一种很好的方案便是“2.5D”。 所谓2.5D,通常的理解是相机固定俯视的游戏视角。在此视角下,人物可以在x、y、z三个轴上移动,如此便能模仿3D游戏的环境,而美术成本要比3D低很多。 2.5D具体实现的方式也分多种,如2D角色+3D场景、3D角色+2D场

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包