为什么我的预制件碰撞不起作用?如何在PreFab上放一个精灵?

时间:2016-08-03 02:16:06

标签: c# unity3d sprite collision

每当我生成新的5个立方体预制件落到地面时,就不会检测到预制件与地面的碰撞,并且立方体不会移回到背景中。我不知道发生了什么事。碰撞代码位于脚本上,该脚本是生成预制件的gameObject的一个组件。如何获取与预制件本身发生碰撞的代码。另外,如何为预制件分配精灵?我试过了,但Unity不允许我这样做。

1 个答案:

答案 0 :(得分:1)

一般情况下,如果两个物体碰撞,它们都需要一个对撞机,并且至少需要一个(非动能)刚体。有碰撞器和刚体的2D和3D版本。

碰撞可以用例如脚本中的OnCollisionEnter附加到两个碰撞对象中的任何一个,在您的情况下可能是落下的立方体。

此外:如果资源文件夹中有prefab,则只能调用Instantiate。如果您使用例如instance要在场景中放置预制件的实例,它被称为SpriteRenderer(预制x)。

对于精灵:对象需要sprite。这可以更改SpriteRenderer属性。如果您通过将精灵拖动到场景中然后将该游戏对象从场景拖动到资源文件夹来创建立方体预制件,则您的多维数据集将具有您可以访问的cube

(我假设$lt表示在2D中工作时的平方。)