为什么对于生成实例化的预制体, Physics.OverlapBox获取不到?
注意:是同一个预制体。事先放在场景中的预制体,就可以获取到。用代码实例化出来的预制体,就获取不到。
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),
out hitInfo, 1000, 1 << LayerMask.NameToLayer("Ground")))
{
Vector3 center = new Vector3((hitInfo.point.x + beginWorldPos.x) / 2, 2, (hitInfo.point.z + beginWorldPos.z) / 2);
Vector3 halfExtents = new Vector3(Mathf.Abs(hitInfo.point.x - beginWorldPos.x) / 2, 2, Mathf.Abs(hitInfo.point.z - beginWorldPos.z) / 2);
Collider[] colliders = Physics.OverlapBox(center, halfExtents);//获取的Collider
//对于实例化出来的预制体,获取不到Collider,但是对于预先放置好在场景中的预制体,colliders里又有。
并且,好像如果点了Play后,在游戏中同时获取“事先放的”和“实例化生成的”物体,那么实例化生成的就会恢复正常,可以获取(明天在测验确认一下)。很神奇。