2015-05-19 100 views
1

所以我有一个预制,我正在随机地随机地在资源文件夹中实例化,如下所示,并且此时只是一个带有Sprite渲染器的图像:检测Sprite的GameObject的完全重叠

go = (GameObject)Instantiate(Resources.Load("alienPink")); 

这些在每3秒后在不同位置实例化。

我也有一个Sprite渲染器,圆撞机2D和刚体2D球连接到它,我也得到访问刚体2D如下:

//ray cast from camera to mouse point to detect hit 

RaycastHit2D hit = Physics2D.Raycast(mousePos2D , dir); 

. . . 

RigidBody2D grabbedObject = hit.collider.rigidbody2D; 

//do stuff with grabbedObject including change position 

我希望在预制检测是完全重叠的球是透明的,所以我可以开始做预制件。 COMPLETE是这里的关键字,我尝试了很多方法,包括尝试检测预制件的渲染器和球的rigidBody2D之间的重叠,但无济于事。我甚至试过在抢夺现场所有的组合屋,让他们到一个数组中,并通过所有在每一个更新的阵列的去检测重叠,但它只是不工作:

GameObject[] prefab =GameObject.FindGameObjectsWithTag("enemies"); //returns GameObject[] 

SOMEBODY HALP!说真的,我一直试图这样做几天了。

谢谢。

回答

1

尝试使用Physics2D.OverlapCircle来检测重叠。另一个值得检查的选项是:Physics2D.OverlapArea。如果这两个选项仅提供部分解决方案,请尝试使用Physics2D.OverlapPoint检查多个点,以便每个点都需要重叠;例如,如果球完全在方格内检查该方格内四点的重叠。

+0

OverlapCircleAll工作 –