Unity入门篇 : Unity2D 基本游戏框架(用户控制,角色行为,事件)
程序员文章站
2022-04-07 17:49:22
...
0x00 概要
使用Unity创建好一个项目之后,我们首先搭建起一个2D游戏的基本框架,再基于这个框架不断添加自己的创意元素。
一个主流2D游戏的要素:
- 玩家通过键盘,鼠标对游戏角色(Sprite)进行控制
- 游戏角色要能够根据玩家的输入做出不同行为
- 当游戏场面达到某种状态时能够触发特定的事件(比如捡起道具,击杀敌人后获得奖励)
0x01 Unity中的操作
2D模式下,将图片直接拖入Assets中就会自动变成Sprite,再拖入到场景中:
就算创建完成了,这里黑色图片作为地面(Ground)。tank会被遮挡,选中tank,右侧的属性界面,把Order in Layer
的值设置为1,这个属性描述了sprite在哪个图层被渲染,默认都是0,数字越高表示越靠顶部。
选中一个Sprite,点击Componet -> Add… 或者直接按快捷键Ctrl+Shift+A
在出现的菜单中选择Physics 2D
然后根据需要选择物理类型,这里我选择了常用的Rigidbody 2D ,2D刚体
sprite的属性栏就会出现
然后就可以设置他的质量(Mass),线性阻力(Linear Drag),角阻力(Angular Drag),重力大小(Gravity Scale)等物理属性,勾选Simulated,Sprite的物理属性就会生效并且能够和其他2D刚体发生相互作用。
0x02 C# Scripts如何写
在Unity中我们能够通过相当简便的鼠标点击来快速构建出我们需要的元素,接下来就需要用C#脚本编写游戏逻辑来使这些本来彼此孤立的元素连接起来,注入灵魂。
最简单的移动:
float dx = Input.GetAxis("Horizontal");
float dy = Input.GetAxis("Vertical");
这两行可以读取水平和垂直的按键(↑↓←→或WASD都可以),然后保存为水平和垂直的单位分量。
或者使用Input.GetKey来获取任意某个按键是否被按:
if(Input.GetKey(KeyCode.Escape))
Application.Quit();
这个实例实现了按下ESC退出游戏的效果