3D Beginner: Tutorial Resources | John Lemon’s Haunted Jaunt: 3D Beginner 项目详解(参考官方文档)
文章的目的在于将UnityLearn项目中的一些值得注意的点,以及未展示图片演示的地方进行一个更为详细的整理总结.为项目过程中出现错误不知道如何下手的朋友的排忧解难.
开始前的准备
此unity官方项目下载地址(官方教程的链接也在其中)
3D Beginner: Tutorial Resources | Tutorials | Unity Asset Store
将其保存至我的项目中
创建3D空核心项目,我的版本为2021.1.11f1c1
在Window的Package Manager中下载导入项目
1.保存场景
创建一个名为 MainScene 的场景资源。
2.添加角色模型
JohnLemon游戏对象拖入scene
JohnLemon对象的内部
JohnLemon 在本质上形成动画的方式如下:角色父游戏对象上的 Animator 组件将改变所有骨骼游戏对象 Transform 组件的旋转,这些改变将一起发生以形成角色的动画。
3.什么是预制件?
4.将角色转化为预制件(放入Prefebs文件夹)
5.动画化您的角色(只是说准备要动画化,并未有操作)
6.创建 Animator Controller(在相应文件夹Animator中创建)
7.设置动画
JohnLemon游戏对象已经是预制件了吗
进入预制件模式禁用Auto Save复选框(启用此复选框会降低速度)
给游戏对象JohnLemon添加动画,可以看到有Animator组件了,需要创建一个Animator Controller
在相应的位置创建好后,去寻找动画资源,将其拖动到Animator窗口中
在Parameters中创建一个bool量,名为LsWalking,用来判断游戏对象是否在走路,用于过渡参数
现在,状态机中有两个状态,但是没有逻辑用于定义应播放的状态.当前,状态机将以默认状态启动,并且永远不会改变,因此JohnLemon将始终处于空闲状态,为了添加一些逻辑,需要创建Animator过渡.
8.创建 Animator 过渡
右键Make Trasition 创建过渡
单击连接线进入Insperctor,将Has Exit Time复选框取消,如果 Has Exit Time 为 true(启用此复选框),则在经过一定时间后,将自动进行过渡,并且状态机将播放下一个状态。在此游戏中,控制过渡的时间很重要,因此请禁用 Has Exit Time 复选框。
9.向过渡添加条件
下面将添加条件提供过渡
Conditions中添加条件
从walk到idle,清空正相反,自行完成.
10.将 Animator Controller 分配给 JohnLemon 预制件
将Animator Controller拖动到游戏对象的Animator组件的Controller属性
11.使角色对物理产生反应
下面给游戏对象添加物理效果
启动Play,嗯,结果不太对:角色跌落一小段距离后停了下来。请再次按 Play 按钮退出播放模式。
这是由 Animator 引起的。Animator 组件上的第三个属性是 Apply Root Motion,该属性当前已启用。Root motion(根运动)
12.什么是根运动 (Root Motion)?
13.什么是更新循环?
14.修复 John Lemon 的移动问题
进入游戏对象的prefab模式,在Animator中更改UpdateMode为Animate Physics(此前为Normal)
此更改将使 Animator 通过物理适时移动角色。现在,在移动角色的更新循环之间应该没有竞争,并且角色将对物理设置产生应有的反应。
您已经看到动画没有任何垂直的根运动,但这不会阻止 JohnLemon 与某些对象碰撞后发生垂直移动。有几种方法可以阻止这种情况。
最明显的选择是禁用 Rigidbody 组件上的 Use Gravity:
这样可以防止角色跌落,但这并不是您想要的。禁用 Use Gravity 的情况下,如果碰撞将角色下推,则该角色仍可能跌落;如果碰撞将角色上推,则该角色会漂走。您肯定不希望发生这种情况,因此您需要使用物理来限制角色的移动。
找到 RigidBody 组件,然后单击箭头以展开 Constraints 属性。这些 Constraint 属性会限制刚体 (Rigidbody) 的移动方向。让我们探索一下 Unity 的坐标系,以准确了解其工作原理。
15.Unity 中的坐标
Unity 中的位置和方向采用 x、y 和 z(它们一起构成一个矢量)表示的 3D 坐标。在下一教程中,您将发现有关矢量的更多信息。一个场景具有这些方向的全局定义,在 Scene 窗口的右上方可以看到。
彩色箭头表示每个轴的正方向,而相反的灰色箭头表示负方向:
- x 轴为红色
- y 轴为绿色
- z 轴为蓝色
16.位置和旋转
人物的高度不应变化,所以应该Freeze position Y
人物不应正面和侧面躺下,所以应该Freeze RotationX,Z
17.向 John Lemon 添加碰撞体
下面给游戏对象添加一个碰撞体(Collider)
最适合 JohnLemon 的最简单形状是胶囊碰撞体 (Capsule Collider),而非Box Collider。
调整合适大小
文章来源:https://www.toymoban.com/news/detail-460540.html
18总结:
您已经开始处理游戏角色。您初步了解了预制件的功能,并创建了一组简单的规则来约束 JohnLemon 的行为。文章来源地址https://www.toymoban.com/news/detail-460540.html
到了这里,关于什么?UnityLearn入门项目也不懂?不用怕,我会出手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!