Unity3D中使用mesh collider和box collider的区别

Unity3D中使用mesh collider和box collider的区别


踩坑过程记录。
设备是HTC的VIVE 和 Unity 5.x
CPU: Intel Xeon Silver 4116 * 2
GPU: NVIDIA Quadro P6000
RAM: 64GB

这个问题是在解决项目卡顿问题的同时出现的:

最近在用U3D做一个VR项目,需求是要给网格加碰撞体以实现获取手柄射线与网格碰撞的具体坐标,利用坐标去计算后面所需要的数据,并且看起来只有加碰撞体这一条路可以走。

这个project实际上是在前期已经做好了AssetsBundle,通过和用户的交互,来动态加载网格的这样一个过程。一开始我在想给所有的mesh手动加碰撞体,直接框起来加collider,结果证明超级卡,直接卡着不动了。


在制作Bundle时加上Mesh Collider

开始决定在批量制作制作Prefab的时候加上碰撞体,然后再制作bundle。在代码上加了两句 X.AddComponent<MeshCollider();
X.GetComponent<MeshCollider().mesh = MESHNAME;
MESHNAME是对应的网格名称,对应相应的网格。做完bundle,并且替换完开始测试。结果实在是太夸张了,原来运行的时候加载网格一帧只要0.18秒左右,加完mesh collider后用Unity的profiler工具监测每一帧发现在加载的时候加载一帧需要2s…结果如下图。

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值