我在" Magnet"上有一个2d的盒子对撞机。精灵和圆形对撞机在" Ball"精灵。在Magnet精灵上,我打开了#34; Is Trigger"并尝试了一些刚体设置:运动学,静态和动态。球上还有一个动态刚体。我使用Unity 2017.3.0f3。
暂时我只想检查物体是否已进入磁铁对撞机并记录物体的名称。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Magnetism : MonoBehaviour {
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log(other.name);
}
}
我也尝试使用OnCollisionEnter(碰撞其他),它仍然没有做任何事情。奇怪的是我也没有错误。哦,也在一个论坛中,我发现有人提到使用onCollisionEnter / onTriggerEnter。这对我来说也不起作用。
答案 0 :(得分:1)
这是确保您的碰撞有效的清单
我知道其中一些是微不足道的,但仍然容易错过
编辑:还有一件事; rigidbody2D必须将模拟设置为true。
答案 1 :(得分:0)
我有两个物体(带有盒子2D的磁铁和带圆圈的球)。磁铁对象附有一个与您相同的脚本。一切都按预期工作。 (经过您的版本测试。)
尝试仔细检查所有内容,否则,尝试创建一个新项目并查看是否发生。如果这不起作用,请使用2017.3.1f1进行测试。如果一切都不起作用,我非常怀疑,向Unity发送错误报告,他们会帮助你。
答案 2 :(得分:0)
确保您使用的所有碰撞器和刚体都是2D
。
为了OnTriggerEnter2D
能够正常工作,至少有一个碰撞者必须激活Is Trigger
。
要进行快速测试,您可以禁用所有刚体,并仅检查激活的碰撞器。
脚本代码非常好,应该可以使用。