三创建摄像机
3.1创建摄像机
项目创建完成后,在Hierarchy窗口中,会自动创建2个对象。Main Camera和Directional Light。删除Directional Light保留Main Camera.
如果Hierarchy窗口中没有Main Camera,也可以自行创建。点击”Create”出现创建对象选择列表。修改新创建的Camera改名为Main Camera。如图:
3.2创建资源文件夹
在Project窗口下面的Asserts路径下创建如下文件夹:
Animations/Animations
Animations/AnimatorControllers
Audio
Fonts
Prefabs
Scenes
Scripts
Sprites
效果如图:
3.3导入资源文件
本项目为Unity3D官方教程,所需资源都可在官网免费下载。请自行导入,如果操作不在此文中介绍。
备注:主要导入Sprites资源。导入后效果如下:
3.4创建主角
过程参考创建Main Camera过程。在Hierarchy点击“Create”按钮,出现下拉列表。选择CreateEmpty创建新的空白对象。如图:
鼠标左键选择GameObject,点击鼠标右键,弹出操作菜单。选择“Rename”操作。修改对象名称GameObject改成Player。
3.4.1创建动画
切换到Project/Asserts/Sprites窗口。选择Player所需精灵。拖拽选中精灵到Hierarchy窗口下的Player,松开左键。
系统弹出创建动画窗口。如图:
选择保存路径Project/Assert/Animations/Animations。名称为PlayerIdle.anim点击”保存“按钮。选择精灵如下:
同样操作添加PlayerChop动画,精灵如下:
同样操作添加PlayerHit动画,精灵如下:
完成Player相关动画创建后,切换到Project/Asserts/Animations/Animations文件夹下面。如图:
移动Player动画控制器到Project/Asserts/Animations/AnimatorControllers文件夹下面。
此时已经完成了,Player相关动画的所有操作。可以点击“运行”按钮观看效果。
3.4.2动画设置
运行后发现Player的动画播放速度过快,效果不好。可以通过修改动画播放速度来条件。鼠标左键选中Hierarchy/Player。然后再次选择Inserpecter中的Animator栏目。如图:
双击Controller右侧的Player图标,
切换到动画编辑窗口。鼠标左键选择PlayerIdle图标。
右侧Inspector窗口中修改Speed1->0.5
播放速度修改之后,再次运行。发现动画效果可以接受了。
3.4.3设置Tag & Layer
Hierarchy中选中从Inspector窗口中,会显示Player属性信息。默认的情况为图中示,但项目还需要多个Tag。
需要手动添加(Food/Exit/Enemy/Soda。点击“Add Tag…”。如图:
系统弹出Tag & Layer窗口。点击Tags栏目下方的“+”按钮进行添加。
依次添加Food/Exit/Enemy/Soda项,效果如图:
以相同的方式添加SortingLayers(Floor/Items/Units)效果如图:
以相同的方式添加Layers(BlockingLayer),效果如图:
3.4.4设置碰撞
给Player添加Box Collider2D组件和Rigidbody2D组件。如图:
添加组件后,在Player属性窗口中。修改Is Kinematic为选中。如图:
调整Box Collider2D的碰撞尺寸小一些。1->0.9 防止与不必要的物体发生碰撞。如图:
3.4.5保存Prefab
到此处已经完成了Player相关属性的设置。然后保存Player为Prefab对象。方式:从Hierarchy窗口中拖拽Player到Project/Asserts/Prefabs下。如图:
备注:到此可以从Hierarchy窗口删除Player对象
3.5创建Enemy
过程参考创建Main Camera过程。在Hierarchy点击“Create”按钮,出现下拉列表。选择CreateEmpty创建新的空白对象。
鼠标左键选择GameObject,点击鼠标右键,弹出操作菜单。选择“Rename”操作。修改对象名称GameObject改成Enemy1。如图:
3.5.1创建Enemy动画
方法参考3.4.
动画Enemy1Idle如下
动画Enemy1Attack如下
3.5.2添加组件
给Enemy添加Box Collider2D组件和Rigidbody2D组件。添加组件后在Enemy属性窗口中。修改Is Kinematic为选中。如图:
3.5.3保存Prefab
到此处已经完成了Enemy相关属性的设置。然后保存Enemy为Prefab对象。方式:从Hierarchy窗口中拖拽Enemy到Project/Asserts/Prefabs下。如图:
3.5.4复制Enemy
修改Enemy1名称为Enemy2。创建Enemy2动画。如下:
动画Enemy2Idle如下
动画Enemy1Attack如下
移动Enemy动画控制器到Project/Asserts/Animations/AnimatorControllers文件夹下面。
3.5.5设置动画控制
双击Project/Asserts/Animations/AnimatorControllers/Enemy切换动画状态编辑窗口。如图:
删除Enemy2Idle和Enemy2Attack对象。这是与Enemy2相关动画在此无用,选中这2个状态。鼠标右键,系统弹出操作功能菜单,选择“Delete”按钮。点击进行删除操作。
到此已经完成Enemy1的动画控制设置。
3.5.6复制动画控制
首先在Project/Asserts/Animations/AnimatorControllers窗口下新增。Animator Override Controller。如图:
修改名称为Enemy2.用Enemy(Controller)覆盖Enemy2.方法:拖动Enemy1(Controller)到Enemy2的属性窗口。或者直接修改Enemy2的Controller属性。同时修改EnemyI1dle为Enemy2Idle,修改Enemy1Attack为Enemy2Attack。如图:
修改Animator组件属性中Controller项为Enemy2.如图:
到此Enemy2动画已经制作完成,点击运行动画观看效果。(背景可能会不同,不过无关紧要)如图:
3.5.7设置层
对Enemy2进行Tag & Layer属性设置。
Tag = Enemy,
Layer = BlockingLayer,
Sprite Renderer/Sorting Layer = Units
删除Enemy2对象从Hierarachy窗口。点击“File/SaveScene”保存场景文件。系统弹出保存对话窗口。选择Asserts/Scenes/Main.unity即可。如图:
Unity3D 2D游戏开发 官方教程。(三)
最新推荐文章于 2023-04-20 21:47:39 发布