Unity 3D官方教程——2D UFO学习记录

1.基础设置

创建新项目命名为2D UFO,选择为2D项目,导入官方资源并保存场景为Main(这些操作已在前些学习记录中说明)。

接下来创建游戏将要运行的平面。将Sprites文件夹下Background精灵和UFO精灵依次拖入Hierarchy,并reset。将Hierarchy下的UFO改名为Player。

将Background的Sorting Layer选为“background”,Player的Sorting Layer选为“player”。2D游戏不像3D游戏一样有透视来确定渲染顺序,故要在每个对象的Sprites Renderer里设置Sorting Layer来决定前后顺序,Sorting Layer的渲染顺序是从列表上到下,所以显示在界面上的是从下到上的顺序(有点像PS的图层)。Sorting Layer里可以点击Add Sorting Layer,在弹出的Inspctor里上下拖拉各个层名来改变顺序。

将Player的Scale设置为(0.75,0.75),2D项目Scale-z不起作用。

可以看到Background大大超出了游戏预览界面,这里我们不是更改Background的Scale,而是设置摄像机,将摄像机size设为16.5。2D项目的摄像机默认为正交模式,也可以选择透视模式,但正交模式在设置游戏时逻辑更合理,故确认摄像机为正交模式。

摄像机视野内未被游戏对象渲染处(即边缘空的地方)可通过设置Main Camera的背景色来改色,将颜色改为(32,32,32)。

 

 

2.控制飞碟移动

为Player添加2d刚体,并在Scripts文件夹下新建脚本命名为PlayerController,将新建脚本拖入Player并编辑。

 

保存后回到unity将speed设置为10。

 

 

3.设置碰撞器

给Player添加Circle Collider2D,将半径(Radius)设为2.15。并把Rigidbody2D的Gravity Scale设为0(不需要重力)。

为了不让player飞出平台,我们给background添加碰撞器。我们首先可以想到的办法是给平面添加一个盒子碰撞器把UFO包起来。实验一下发现UFO飞到平面边缘时直接粘到平面的外缘不能移动了。这是unity处理碰撞器的逻辑,一个物体可以有多个碰撞器,unity会把碰撞器重叠部分处理成一体。也可有重叠的碰撞器(Survival Shooter内的player),但重叠的碰撞器间只能有一个不勾选Is Trigger的。如果有多个,像盒子里包UFO的圆圈,unity会把他们合并成一个没有勾选Is Trigger的碰撞器。所以UFO粘到了平面的外缘和平面成了一体。

故我们需要在平面边缘建四个碰撞器粘成一个框状把平面包起来,下面是操作(小技巧:添加一个后点组件的小齿轮选Copy Component后选Paste As New Component可快速 添加)

 

 

4.摄像机跟随

使摄像机跟随UFO首先想到是否可把camera拖入player成为子对象,但当UFO旋转时镜头也会旋转。所以新建脚本CameraController脚本并拖入Main Camera,编辑。

 

保存后回到unity,将player拖入脚本组件。

 


5.设置宝石

将Sprites文件夹内PickUp精灵拖入Hierarchy,将PickUp的Sorting Layer设置为PickUps以在平面上显示。添加Circle Collider,将Radius设为0.92。为了让宝石有旋转特效,新建脚本命名Rotator为并拖入Pickups,编辑。

 

Assets下新建文件夹Prefabs并把设置好的PickUp拖入使成为预制件。Hierarchy下新建对象命名为Pickups并拖入PickUp使成为子对象,然后复制(ctrl+D)PickUp11次并摆成菱形。

 

接下来设置宝石可以被UFO消除,打开PlayerController脚本编辑。

将预制件PickUps的tag设为PickUp,可以看到所有的tag都变成了PickUp。然后把预制件PickUps的Is Trigger勾选(可以被触发)。

和3D模式不同的是,系统默认的静态物体(即没有添加刚体)如果给予脚本使其移动虽然可行,但系统在每一帧都会重新计算该静态物体,这会损失大量性能,所以为PickUp预制件添加Rigidbody2D,并选择模式为Kinematic。

 

 

6.计分板和UI

新建Text命名为CountText,内容改为"Count Text",颜色设为黄色,Anchor Presets为锚点和位置都为左上角(shift+alt),位置Pos设为(10,-10,0),Canvas下新建Text命名为Win Text,将内容改为Win Text,,Pos Y设为75,设为居中,字体大小为24,颜色为黄色。打开PlayerController脚本编辑。

 

把countText和WinText拖入到脚本组件。保存场景。完成!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值