
1.添加物品
首先想要实现物品收集应该添加物品Sprite(精灵),就像添加player一样
先找到物品贴图

然后新建个Object用来装物品

这里草率的将这个命名为Item
然后新建Sprite为命名为Cherry

然后就可以拖入贴图到里面了

别忘了设置大小

然后拖入素材就可以看见了(看不见的可以调整一下SortingLayer
然后按照以前的步骤给它添加一个动画
先添加Animator组件


新建个文件夹用来装Item的动画控制器
然后新建控制器

选中Cherry Sprite 新建idle动画拖入图片

调整采样率后搞腚
然后判断拾取需要给樱桃添加一个碰撞器(勾选触发器那种)

这里元素有layer和tag两种选项

为了方便识别碰撞元素的种类,应该新建tag赋予Cherry


这里新建了Item tag,新建完记得设置给Cherry
然后就可以在player的代码内编辑碰撞检测了


先在PlayerController中添加OnTriggerEnter2D函数
再添加一个用于计分的变量

整数型默认就是0,或者你可以自定义初始值
然后才判断collision的tag,添加计分+1的代码(变量自加一)

然后就可以预览一下了

可以看到player碰到樱桃时,樱桃消失,脚本处显示CherryCount从0→1
2.Prefabs
以上添加的元素都处于一个Sense(场景)中,也就是说新建一个Sense时就只能得到一个空白的Sense,所以需要新建一个Prefabs用来储存一些明显会复用的元素(例如物品,角色)

首先在根目录新建Prefabs文件夹
然后将需要复用的元素拖进去

变蓝了就说明现在它可以复用了,再新建一个物品就不需要再设置一遍动画而是可以直接拖入了

3.优化代码
为了处理之后要加上的背景(例如树木,应该有的可以遮住player,有的不能)
这就需要在图层方面新建一个Environment图层,用于放置环境相关贴图
顺便新建一个Player图层

大概就这样
然后就可以新建一个Environment元素用来美化地图了
(稍微处理了一下


Unity3D开发学习⑨ 物品收集, Prefabs,优化代码
原文:https://www.cnblogs.com/xqher/p/14300751.html