找回密码
 立即注册
查看: 534|回复: 0

[简易教程] Unity暑期萌新入门:玩家角色(一)

[复制链接]
发表于 2020-11-25 09:41 | 显示全部楼层 |阅读模式
前言
上一节我们完成了Untiy新建项目、教程资源导入等准备工作,这一节我们将正式开始游戏制作。
是不是感觉激动地搓手手
英文原版教程的名字是John Lemon's Haunted Jaunt: 3D Beginner,而冒号前面的部分John Lemon's Haunted Jaunt即是教程中游戏的名字咱们要做的,就是这款游戏。
游戏讲述的是一只叫做John Lemon的猫穿越鬼屋的故事。玩法很简单,在不被石像鬼(不会动)和幽灵(会巡逻)发现的情况下,到达终点就顺利通关,被发现了就只能再接再厉了~
被幽灵发现了QAQ
顺利通关
这个教程的目的,是希望大家通过完成一个简单的小游戏,体验游戏的制作流程,对软件操作以及脚本思路留下初步印象。
如果用平时玩游戏的思路,那么大家可以当作初次接触新游戏的一周目,每一小篇等于一个关卡,在不断“翻车”中慢慢摸索基础技巧。一定不要强求自己做一遍就掌握全部知识,如果想更加深入地理解,还需要大~~~~~~~量工程的练习。
再强调一下,在接下来的步骤中,除开操作本身,我也会简单介绍每步的作用和原理,大家看看就好,现阶段看不懂也是完全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。
新建好的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(行走)两个动画分别拖进去。
橙色为默认状态,右键Set as Layer Default State可以更改默认状态


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运行游戏,查看一下自己的劳动成果啦~
瑟瑟发抖的John


三、物理系统
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游戏开发零基础入门教程:https://www.bilibili.com/video/av13288553
咱们的游戏开发交流群也欢迎强势插入:869551769
希望参与线下游戏开发学习的,欢~~~~~~迎访问:http://www.levelpp.com/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 11:04 , Processed in 0.130330 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表