2015-11-28 102 views
1

我被困在这个球体上有一个CircleCollider2D和矩形有一个BoxCollider2D我增加了BoxCollider的偏移量。但为什么球体不会与其边界相撞。球体进入球体,然后碰撞就像这样。
enter image description here物体没有与边界碰撞

我希望当球体碰到它的边界时它会发生碰撞。我还会检查默认半径,但会出现相同的情况。当冲突发生时

回答

1

触发

的脚本系统可以检测并启动使用OnCollisionEnter功能的操作。但是,您也可以使用物理引擎来简单检测一个碰撞器何时进入另一个碰撞器的空间而不会产生碰撞。配置为触发器的对撞机(使用Is触发器属性)不具有固体对象的作用,并且仅允许其他碰撞器通过。当碰撞器进入其空间时,触发器将在触发器对象的脚本上调用OnTriggerEnter函数。 http://docs.unity3d.com/Manual/CollidersOverview.html

您需要关闭isTrigger并使用OnCollisionEnter(...)。

例如,这是我的木材脚本(下面)。较小的木材将会下降。 enter image description here

这是我的比赛 enter image description here

如果我设置isTrigger选项真,onCollisionEnter2D功能不工作的开始。我需要isTriggerEnter()方法。它穿过我的木头层。 enter image description here

但是,如果我设置isTrigger false onCollisionEnter2D将工作。它会留在我的木头层上。 enter image description here

+0

能否请您做与您的自定义脚本只是举例 –

+0

感谢我理解你的example.just一件事可以请你告诉我,在2D游戏,为什么Vector2'和'Vector3'之间'简单的话,我们的区别当我看到统一官方网站作为参考指南时,使用这个'Math.Lerp','Math.Clamp'我不明白他们在说什么 –

+0

假设你有边界。你希望你的游戏对象的x位置在-4和4之间,你使用math.clamp。如果你的游戏对象试图移动-5这个函数将使其位置-4。莱普是关于比例。再次假设您的值在1 - 100之间。您希望在这些数字之间有不同的值。如果你设置t = 7,你会得到70.设置2会给你20.钳位限制了一些东西,lerp得到了一个极限值@ ZainKhan –