Mesh Collider不能射线检测,原因是Mesh分单面 双面?MeshCollider双面化脚本

如果mesh是单面的,MeshCollider也是单面的

给模型添加了Mesh Collider组件后,从物体的外表面可以进行射线碰撞检测,但背面进行射线碰撞检测失败,直接穿透了模型;这个是因为该模型网格为单面网格,Mesh Collier组件的Mesh来自于模型中,如果模型是单面的,那就只有一面有碰撞检测了;

单面模型的话,从另一面看过去会显示透明,即看穿了,也无法在背面进行射线碰撞检测;而使用双面材质,可以解决从背面看过去透明的问题,但无法解决另一面的网格,射线碰撞穿透的问题还在;

解决方法是MeshCollider双面化脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DoubleSideMeshCollid

你可能感兴趣的:(Unity进阶,unity,游戏引擎)