【Unity2D】从零开始的游戏开发——小狐狸Chapter3.

1.镜头跟踪

  1. 在package manager中下载插件“Cinemachine";(不知为何,我的Cinemachine不在顶端栏中,而是在GameObject中)
  2. 选择Cinemachine–>2D Camera,此时Hierarchy中会多一个虚拟摄像机,画面被遮挡;
  3. 点击虚拟摄像机,在监视器中找到Follow参数,表示需要镜头跟随的物体。将player拖拽至Follow中;
  4. 此时试玩中发现会出现背景贴图之外的画面,为虚拟摄像机创建Cinemachine Confiner元素,为背景创建Polygon Collider 2D元素,并将背景拖拽至虚拟摄像机的Bounding Shape 2D中,最后调整虚拟摄像机的Edit Coliider至铺面所有背景即可;在这里插入图片描述

可以通过监视器body参数中的Dead Zone WidthDead Zone Height来调整镜头跟随的尺度,使得在一定范围内角色的移动不会导致镜头移动;

2.物品收集

2.1 Cherry动态

注意,由于Cherry是一个新的“角色”,因此,需要重新创建对应的Sprite注意拖拽贴图以及设置显示的图层顺序);
同时,Cherry有对应默认的idle状态动画,此时不要直接去点击cherry的sprite然后在Animator中创建动画,应该先为收集品(collection)创建一个对应的动画文件夹(和player同级,养成好习惯!),为Cherry对象添加Animator元素,此时Unity会自动会你添加Animation Controller(注意选择对应的文件夹);之后添加动画,完成!

diamond同理!不再赘述

2.2 Cherry收集

为了收集,必须让cherry是一个碰撞体(添加BoxCollider 2D),并且需要在触碰到cherry的时候,让cherry消失,背包中cherry数+1

2.2.1 Triger

将Cherry碰撞体设置为一个Triger:
在这里插入图片描述
此时试玩,发现cherry可以穿过,不会阻挡,并且自动执行Unity的私有函数OnTriggerEnter2D(Collider2D collision)

2.2.2 消失

当传入一个碰撞体参数时,通过如下代码使得该对象消失:

Destroy(collision.gameObject);

2.2.3 收集

创建一个public的int参数cherrynum,当触发器函数执行时,首先通过tag判断碰到的是哪个Triger,因此需要先给triger设置一个对应的tag:
在这里插入图片描述
在这里插入图片描述
完整代码:

private void OnTriggerEnter2D(Collider2D collision)   // 当另一个碰撞体进入了触发器 则调用这个函数
{
    if (collision.tag == "collection")
    {
        Destroy(collision.gameObject);
        cherrynum += 1;
    }
    else if ((collision.tag == "conllection_diamond"))
    {
        Destroy(collision.gameObject);
        diamondnum += 1;
    }
}

3. Prefab(预设)

当我们费了一番功夫设置好了一个player,一个cherry,想在地图上添加另一个cherry时,我们希望可以直接复制之前设置好各项参数的cherry。因此,prefab诞生了!
我们在Asset文件夹中创建一个空文件夹,命名为“Prefabs”,然后直接将Hierarchy中的player和cherry拖拽进来:
在这里插入图片描述
此时,Hierarchy中的player和cherry等都变成了蓝色!证明,我们已经将其设置为了一个预设,后续有需要时,直接再次从Prefabs文件夹中拖拽到Hierarchy中即可;同理,我们可以通过修改Prefabs文件夹中某个对象预设的参数,来直接应用到已经布置在游戏中的各个该对象
而在此时,在Hierarchy已经拥有cherry的前提下,我们想要复制player或者cherry则只需要点击,并按下:

Ctrl + D    // 限windows用户

即可实现复制!

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值