【Unity每日灵感】第二期:复刻FreeFlyCamera插件内置脚本,如何实现丝滑好用的相机漫游?

2023-11-07

目录

一、插件效果

①相机部分

②提示部分

二、步骤拆解

①视角旋转

②移动与升降

③加速、锁定及重置

三、脚本复刻

①旋转

②位置变换

③增加体验感的细节


栏目Up&Up,专门针对我自己平日里一些在项目中使用的好玩的点子,或者尚未实现的有趣功能复刻。

第二期:FreeFlyCamera插件的复刻和脚本解读,及为下一期升级做铺垫。

一、插件效果

①相机部分

 图1-1 相机效果图

 图1-2 自由相机

②提示部分

 图2-1 提示效果图

图2-2 界面控制

二、步骤拆解

其脚本的整体逻辑都不难,比较值得学习的地方更多是脚本的写法规范和命名,包括灵活性可变性,合理的编辑器参数分类和说明,FreeFlyCamera的每一个参数都在编辑器中实现了可调节的功能。如下图0-1,0-2:

图0-1  Tooltip的编写

  图0-2 间隔划分和序列化

①视角旋转

视角旋转核心逻辑应该是很简单的类第一人称相机的控制方法,可以加以角度限制也可以不加,而旋转效果后续可以根据一些数学插值和四元数插值进行优化,而这里其对XY控制用了不同的方法。如下图1-1:

 图1-1 类第一人称视角

②移动与升降

移动则是简单的输入键位则对相应的transform的方向矢量更新,可以优化的点在于使用方法实现平滑移动,或者加以速度递增递减优化体验。

 图2-1 六向位移

③加速、锁定及重置

 加速:

简单的控制在原基础上速度再多乘一个则倍速值

鼠标锁定:

进入默认锁定鼠标位置和不可见

 

重置位置:

在方法Start()中记录位置,若按下提前设置好的重置键,则返回最初位置

 

三、脚本复刻升级

①旋转

②位置变换

③增加体验感的细节

见下期

以上就是本期分享的内容,如有讲的不好的地方还请帮我找出来,一起进步,如果对你有帮助不妨点个关注点个赞。更多内容见B站账号:波仔羔。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Unity每日灵感】第二期:复刻FreeFlyCamera插件内置脚本,如何实现丝滑好用的相机漫游? 的相关文章

  • UE4 解决景深效果闪烁问题

    原因 1 模型的垂直竖线 造成抗锯齿算法对竖线的渲染计算 处于一种不稳定的状态 因此闪烁 解决办法 使用LOD 用贴图去替代线条模型 2 材质的法线贴图 当法线贴图含有垂直竖线的纹理效果 也会造成闪烁 比如这种幕墙材质 解决办法 关闭或动态
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • UnityVR--组件3--Line Renderer--线性渲染

    目录 线性渲染组件简介 绘制线条Line Renderer组件介绍 绘制拖尾Trail Renderer组件介绍 应用1 使用Line Renderer绘制线段 应用1实现 使用系统工具或自定义工具绘制线段 应用2 Trail Render
  • GooglePlay提审警告(com.google.android.gms:play-services-safetynet:17.0.0)

    1 Goole在今年6月份出的新政策 不在使用safetynet 而使用Play Integrity API 2 项目本身没有使用过safetynet 3 使用了firebase 查阅资料 解决方案如下 implementation pla
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • VLC for unity 插件如何使用

    VLC for unity 插件如何使用 先去下载一个VLC播放器 安装完成后 然后导入插件链接https download csdn net my 这个插件我的另一个上传资源里有 或者到商店去下载 这个插件链接下载完是一个txt文档 里面
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文

随机推荐

  • 卡诺图简单逻辑化简与五变量卡诺图化简

    一 格雷码编码规则 画卡诺图的时候需要先将所有变量可能以格雷码的形式排列在方格两侧 所有变量有2 n个 虽然我们常用的变量为四个及以下 可以熟记格雷码 但为了学习还是有必要了解格雷码的编码规则 格雷码的基本特点就是任意两个相邻的代码只有一位
  • 什么?强化学习竟然来源于心理学?

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由罗晖发表于云 社区专栏 1 Google的DQN论文 2015年2月 Google在Nature上发表了一篇论文 见附件 Human level control through
  • GO语言网络编程(并发编程)Sync

    GO语言网络编程 并发编程 Sync 1 Sync 1 1 1 sync WaitGroup 在代码中生硬的使用time Sleep肯定是不合适的 Go语言中可以使用sync WaitGroup来实现并发任务的同步 sync WaitGro
  • MySQL 数据库中的视图

    大家好 作为一名互联网行业的小白 写博客只是为了巩固自己学习的知识 但由于水平有限 博客中难免会有一些错误出现 有不妥之处恳请各位大佬指点一二 博客主页 链接 https blog csdn net weixin 52720197 spm
  • SQLServer修改表数据

    使用SSMS数据库管理工具修改数据 修改任意一条或者多条都可以 1 打开数据库 选择数据表 右键点击 编辑所有行 如未配置 点击编辑前200行 2 编辑需要修改的数据 编辑完成后 右键点击空白处 选择执行SQL即可编辑成功 使用T SQL脚
  • 【qt】在qt里调用shell脚本-实现上位机调用Detectron的推断

    qt调用shell脚本有三种方法 目的 用qt做一个界面 本质是调用写好的shell脚本 调用detectron的infer simple py文件进行样本推断并显示在界面里 遇到的问题 但是本人只有system 可以行得通 而且调用的脚本
  • 故障排除经验——笔记本电脑重启后键盘失灵的解决办法(亲测可用)

    问题描述 下午 卸载了360软件 安全卫士 软件管家 360安全浏览器 后 重启电脑 然后电脑开始硬盘扫描 检测 结果告知不能成功修复 随后 我选择 继续使用Win10 选项 就发现电脑键盘已经失灵 无法输入开机密码 一度让我抓狂 在随后的
  • 堆栈相关应用算法

    栈的压入 弹出序列 题目描述 输入两个整数序列 第一个序列表示栈的压入顺序 请判断第二个序列是否可能为该栈的弹出顺序 假设压入栈的所有数字均不相等 例如序列1 2 3 4 5是某栈的压入顺序 序列4 5 3 2 1是该压栈序列对应的一个弹出
  • 什么能力很重要: 维持自己的框架的能力

    作者 纸箱之神 链接 https www zhihu com question 305507128 answer 637314109 有人答努力 坚持 选择 自律 学习 这些都很重要 但是我觉得 还有一个能力是凌驾于所有这些答案之上的 那就
  • 使用idea创建项目的步骤

    使用idea创建项目的步骤 1 点击桌面安装好的idea 2 由于我之前创建好了 所以打开的时候直接就进去 接下来 创建idea 3 File new project 4 点击project 创建项目 5 进行下一步 6 继续下一步 7 会
  • 渲染性能优化之几种LOD层次细节总结

    CIM 城市信息模型 这种大场景或者说特大场景LOD是非常重要的 城市 BIM 地形都非常系需要 根据公司的项目需求这里做了一下总结各种LOD的技术 算法 策略 首先 我们公司对于城市这种大场景我们提出使用如下技术 1 组织 符合3Dtil
  • Kr的pandas技巧笔记

    最近在做一个数据集的可视化项目 又捡起了pandas和python 这里把实际用到的技巧干货写下来 防止忘记再次去网上各种查和看documentation 同时也分享给大家 1 找出nan项 DataFrame isnull 返回一个大小和
  • Windows中的时间(SYSTEMTIME和FILETIME)

    上一篇中介绍了C运行库中的时间处理函数 这一篇介绍Windows SDk中提供的时间函数 两种时间系统之间没有本质区别 事实上CRT时间是用Windows时间实现的 当然这是说的VC实现 同样提供本地时间和UTC时间之间的转换 不过CRT中
  • C++socket编程(二):系统socket库介绍

    什么是套接字 套接字是一个介质 由操作系统控制 下面演示下windows和linux中的socket接口建立的代码 通用 ifdef WIN32 include
  • 出现rpm: command not found

    解决方法 sudo apt get install alien 转载于 https www cnblogs com xDan p 5411083 html
  • fiddler抓取,Android真机测试

    1 配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的 需要进行相应的配置 打开Fiddler 选择 Tools gt Fiddler Options 2 在弹出的对话框中选择 HTTPS 选项卡 3 勾选
  • 【Jupyter】下,Tensorflow 1.8 载入 MNIST 数据集

    导入包 import tensorflow as tf from tensorflow examples tutorials mnist import input data mnist input data read data sets M
  • 前端基础3——JavaScript基础用法

    文章目录 一 基本使用 1 1 内部方式 1 2 外部导入方式 1 3 css标签调用js脚本 触发事件 二 Windows对象 2 1 对象属性 2 2 对象方法 三 数据类型 3 1 字符串处理 3 2 数组处理 3 3 对象处理 四
  • 逆水寒7.25服务器维护,逆水寒7月4日更新维护公告 角色交易功能上线

    原标题 逆水寒7月4日更新维护公告 角色交易功能上线 逆水寒7月4日更新了什么内容 7月4日正式服中加入了角色交易的新功能 另外天江之战活动也正式开启 以下来看下完整的更新公告 各位自在同门 为了保证服务器的运行稳定和服务质量 逆水寒 将于
  • 【Unity每日灵感】第二期:复刻FreeFlyCamera插件内置脚本,如何实现丝滑好用的相机漫游?

    目录 一 插件效果 相机部分 提示部分 二 步骤拆解 视角旋转 移动与升降 加速 锁定及重置 三 脚本复刻 旋转 位置变换 增加体验感的细节 栏目Up Up 专门针对我自己平日里一些在项目中使用的好玩的点子 或者尚未实现的有趣功能复刻 第二