Unity Raycasting不适用于导入的对象(生成meshcollider)

时间:2016-05-07 18:14:04

标签: c# unity3d

我导入了一个用'blender'建模的表面,我用网格对撞机导入它。当我想在这个表面上进行射线投射以放置随机物体时,它将无法工作。当我在此表面上方设置标准平面时,光线投射在此平面上工作。所以我认为我建模的表面并没有捕捉光线投射,但我不知道为什么。有人能帮助我吗?

void Start ()
{
    for(int i = 0; i < numberOfObjects; i++)
    {
        //What we will spawn
        GameObject objectToSpawn = objectsToSpawn[Random.Range(0,objectsToSpawn.Length)];

        Vector2 spawnPositionV2 = Random.insideUnitCircle*spawnRadius;

        Vector3 spawnPosition = new Vector3(spawnPositionV2.x,0.0f,spawnPositionV2.y);

        Vector3 transformOffsetSpawnPosition = transform.position+spawnPosition;

        RaycastHit hit;

        if (Physics.Raycast (transformOffsetSpawnPosition, Vector3.down, out hit)) {

            Vector3 finalSpanPosition = hit.point;
            Instantiate (objectToSpawn, finalSpanPosition, Quaternion.identity);

        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

如果您正在使用网格对撞机,则应将“凸面”属性设置为“真”,以使其与碰撞一起使用。我相信它也适用于光线投射。 您也可以进入对撞机编辑模式并检查网格表面是否被对撞机正确覆盖。