2d游戏如何处理盒子里的物品?

游戏引擎

Unity2D横版游戏教程4-收集物品和实物资料

真的没事,达克

引起

密切注意

1喜欢648人阅读

我们先把背景放大一点,然后按ctrl+D复制一张背景图并调整位置,再把图放大一点。

然后在Hierarchy接口中创建一个名为Collection的空组件,它代表一个物品,并创建一个名为Cherries的空子组件,这是一个可以拾取的cherry物品。在右边的属性栏中为Cherries添加一个Sprite渲染器。

接下来,我们要为樱桃建立一个模型。我们转到项目文件夹,其中有三个不同的项目。第三个文件夹是一些水果。我们选樱桃,别忘了把樱桃的像素改成32。

然后我们将第一帧的动画拖动到樱桃中的精灵渲染器。

将图层顺序设置为我们之前设置的集合图层,这样就可以在场景中看到这个物品了。

然后我们给对象添加一个动画效果,和前面的角色动画一样,这里就跳过了。如果忘记了,可以看看之前的文章。动画完成后,我们需要给樱桃添加一个碰撞体,在属性栏给樱桃添加一个圆形碰撞体2D。

调整位置,然后检查是否触发,并使用此碰撞作为触发器。

然后我们要写一点代码。

首先,创建一个计数变量来计算角色的分数或收集的物品数量。

还有就是角色打中一个物品并破坏物品计数时的变量1。

我们把这个樱桃当做一个触发器,所以用触发器的类型来判断它是否是一个可收藏的物品。这里,通过设置项目的标签来区分触发器的类型。

创建一个新标记,并将其命名为Collection。

然后我们把cherry的标签改成了Collection,再把不同类型的可收藏物品的标签改成了Collection。

设置好标签后,我们可以把它写在代码中

这里,输出cherries的值进行调试。让我们回到团结。当我们遇到樱桃的时候,我们会把它打印出来。樱桃的价值是1。

不要忘记注释掉我们调试代码行。

我们现在只在地图上放了一颗樱桃。如果要放更多的樱桃,就要一个一个的放,如果要换所有的樱桃,就需要一个一个的放。在这里,我们引入Perfabs的概念,它的作用是重用资源。场景中重用的对象尽可能是预制的。

我们可以通过反方向拖动这个物体到文件夹中,把它做成一个预制件,然后把文件夹中的预制件拖动到场景中,成为一个预制件实例。当我们修改预成型件时,所有预成型件实例都将被相应地修改。当我们修改预成型件实例时,包括预成型件在内的其他预成型件实例不会改变。

所以在我们有了预成型品之后,我们可以不断地复制它。当我们想要改变它时,所有预成型件的实例都会相应地改变。如果想对预制件有更深入的了解,可以参考Unity _ Dream哮天青年博客-CSDN博客_unity预制件中的这篇文章来讲解预制件。

然后我们创建一个名为Prefabs的文件夹,然后将层次中的樱桃拖动到Prefabs文件夹中,这样我们就有了樱桃预成型,此时樱桃会变成蓝色。

然后我们会通过ctrl+D复制樱桃,在地图上添加更多的樱桃。

这样,项目的收集就完成了。我们来修改一下角色会卡在其他碰撞上的bug。角色有一个碰撞体,tilemap也有一个碰撞体,所以当角色接触到其他物体时,会卡在上面。因为摩擦,我们给角色加了一个光滑的物理材质。

我们右键单击资产文件夹-& gt;创建-& gt;2D->;物理材料2D,创造2D物理材料。

然后把这个材料的两个参数设置为0,摩擦力就是摩擦力,弹跳就是回弹力。

然后拖动这个材料到角色的圆形碰撞器2D。

这样我们的性格就不会和其他碰撞摩擦了。

最后贴完整代码。