欢迎光临散文网 会员登陆 & 注册

Unity暑期萌新入门:玩家角色(一)

2019-06-14 10:31 作者:皮皮关做游戏  | 我要投稿

作者:Truly


前言

上一节我们完成了Untiy新建项目、教程资源导入等准备工作,这一节我们将正式开始游戏制作。

英文原版教程的名字是John Lemon's Haunted Jaunt: 3D Beginner,而冒号前面的部分John Lemon's Haunted Jaunt即是教程中游戏的名字咱们要做的,就是这款游戏。

游戏讲述的是一只叫做John Lemon的猫穿越鬼屋的故事。玩法很简单,在不被石像鬼(不会动)和幽灵(会巡逻)发现的情况下,到达终点就顺利通关,被发现了就只能再接再厉了~

这个教程的目的,是希望大家通过完成一个简单的小游戏,体验游戏的制作流程,对软件操作以及脚本思路留下初步印象。

如果用平时玩游戏的思路,那么大家可以当作初次接触新游戏的一周目,每一小篇等于一个关卡,在不断“翻车”中慢慢摸索基础技巧。一定不要强求自己做一遍就掌握全部知识,如果想更加深入地理解,还需要大~~~~~~~量工程的练习。

再强调一下,在接下来的步骤中,除开操作本身,我也会简单介绍每步的作用和原理,大家看看就好,现阶段看不懂也是完全OK的——只要照着具体的操作做就好。等学到稍微后面一点再回过头来看,你会发现这些曾经张牙舞爪的内容······

都是乐色

一、预制体(Prefabs)

1 创建实例

下边通过在场景中添加我们的主角猫咪John Lemon来学习创建实例

(1)在Project窗口中,转到Assets> Models> Characters 文件夹,找到JohnLemon 的模型。

(2)将JohnLemon模型从Project窗口拖到Scene视窗中(也可以将模型拖动到Hierarchy视窗中) 。

(3)将光标放在Scene 视图上,按F进行快速定位。


2 创建Prefabs(预制体)

Prefabs(预制体)是一种特殊的Asset(资源),它相当于一个模板,里边包含了各种已经设置好的components(组件),可以通过拖拽的方式实例化多个相同的对象。有一点需要注意,当Prefabs发生改变,其对应的实例也会跟着改变。

打开下方Project视窗中Assets>Prefabs文件夹,在Hierarchy视窗中把JohnLemon的GameObject拖入Prefabs文件夹中,弹窗选择Original Prefab。


二、让角色动起来

1 创建Animator Controller

在Project Window中,打开Assets> Animation> Animators文件夹,文件夹内右键选择Create> Animator Controller,命名为“JohnLemon”(F2可重命名)。


2 添加动画

(1) 双击刚刚创建的JohnLemon(Animator Controller)来打开Animator State(动画状态机)。Animator State决定当前播放的动画。

(2) Project视窗中,打开Assets > Animation > Animation文件夹,把John@Idle (空闲)、John@Walk(行走)两个动画分别拖进去。


3 设置动画过渡以及过渡条件

(1)设置动画过渡

①右键Idle状态,选择Make Transition,连接Walk状态。

②右键Walk状态,选择Make Transition,连接Idle状态。

DEL键可以删除连接

(2)设置过渡条件

① 取消退出时间

左键选中连接线,Inspector窗口中取消勾选Has Exit Time。如果不取消,则会等待上一个动画片段播完才过渡,造成延迟。

两条连接线都要取消勾选

② 设置Conditions(条件)

Animator视窗中选择Paraeters(参数),点击+按钮,选择Bool类型参数,命名为IsWalking。这里参数将会在以后的脚本中调用,控制动画片段的播放。

选中Idle--->Walk的连接线,点击Inspector窗口中Condition框里+添加参数,设置IsWalking,true。表示当IsWalking==true(真)时,从Idle中过渡到Walk状态。

选中Walk--->Idle的连接线,点击Inspector窗口中Condition框里+添加参数,设置IsWalking,false。表示当IsWalking==false(假)时,从Walk中过渡到Idle状态。


4 把Animator Controller分配给JohnLemon Prefab:

(1)编辑Prefab(预制体)

① 打开预制体。选中Prefabs文件夹里边JohnLemon的预制体,点击Inspector视窗里的Open Prefab

② 编辑预制体。勾选自动保存Auto Save)。

(2)Project窗口中,进入Assets> Animation> Animators文件夹,找到JohnLemon(Animator Controller)。

把JohnLemon(Animator Controller)拖进Inspector的Animator组件Controller框里,把Updare Mode更改为Animate Physics。Hierarchy视窗左上的箭头可以返回MainScene。

现在大家可以按CTRL+P运行游戏,查看一下自己的劳动成果啦~


三、物理系统

Rigidbody(刚体)用于实现对象在场景中的物理交互,控制移动的时候需要用此组件。

1 添加Rigidbody(刚体)

打开JohnLemon的预制体(Open Prefab)进入编辑模式。在Inspector中,点击右下角Add Component,搜索Rigidbody,选择添加。

如果添加错误了,点击组件右上角齿轮,可选择Remove Component删除组件。


2 设置Rigidbody参数

Freeze Position:限制在选中轴方向上的移动。

Freeze Rotation:限制绕选中轴的旋转。

Constraints(约束)下的参数如下设置:

  • 勾选Freeze Position Y

  • 勾选FreezeRotation X 和 Z

John不需要在Y轴(向上)移动,也不需要绕着X或者Z轴旋转


3 添加Collider(碰撞体)

Collider用于碰撞检测,当两个对象相撞时,只有他们添加了Collider组件,以及至少其中一个拥有Rigidbody的情况下,物理引擎才会计算碰撞。

点击Add Component,搜索Collider,选择Capsule Collider(胶囊碰撞体)


4 设置Collider(碰撞体)参数

Center(中心):Y轴0.7

Radius(半径):0.4

Height(高度):1.4

经过设置之后,Collider更加贴合John模型的大小


结语:

恭喜大家撑到这,完成了”第一关“。

在这一节中,我们先完成了John角色的实例化和创建了预制体,然后为他添加了动画片段,最后为他设置了物理系统相关组件(Rigidbody和Collider)。

现在我们的主人喵已经可以瑟瑟发抖了,下一节我们将添加脚本,控制John移动。

那么角色(一)设置部分到此结束,学有余力的同学之后可以看看接下来会发布的“角色(一)小知识篇”,里边简单解释了刚才用到的相关知识,不过即使不看呢,也不会影响后续游戏的完成。

如有任何疑问、建议,欢迎大家留言,咱们一起讨论,共同进步。

附上本期内容概览:


迫不及待想自行开始制作的小伙伴,可以浏览John Lemon's Haunted Jaunt官方教程:

https://learn.unity.com/project/john-lemon-s-haunted-jaunt-3d-beginner

学有余力的小伙伴们,如果想更加详细地了解Unity入门知识,可以参考以下入门视频:

Unity游戏开发零基础入门教程:

咱们的游戏开发交流群也欢迎强势插入:869551769

希望参与线下游戏开发学习的,欢~~~~~~迎访问:http://www.levelpp.com/

Unity暑期萌新入门:玩家角色(一)的评论 (共 条)

分享到微博请遵守国家法律