Unity 改变一个模型 如何同时改变该模型的 网格碰撞器大小

 

 

 

MeshCollider 有一个mesh 属性, 但是如果你用C# 写脚本.

GetComponent<MeshCollider>().mesh = mesh; 是没反应的,我一开始就这样尝试了.但是没反映,以为这样没用,卡了一天,后来一个会C#的给我纠正了.

要这样写:

MeshCollider meshCollider = GetComponent<MeshCollider>();

meshCollider.mesh = null;

meshCollider.mesh = mesh;

我一直用JS写脚本,猛的用C#,有些细节不清楚。。。。。。。。。。。。。

Unity 是一款功能强大的游戏引擎,具有强大的模型导入和碰撞检测功能。为了在游戏中实现物体间的碰撞效果,Unity 可以根据模型的形状自动生成碰撞。所谓碰撞(Collider)是一种与物体形状相匹配的实体,用于模拟物体之间的碰撞和触发事件。 Unity 提供了多种自动生成碰撞的方法,主要有以下几种: 1. 包围盒碰撞(Bounding Box Collider):这种碰撞是根据物体模型的外接矩形盒子进行生成,简单粗略,适用于部分模型碰撞检测。 2. 网格碰撞(Mesh Collider):这种碰撞可以根据物体模型的顶点和三角面生成,与物体的形状更加精确匹配,因此碰撞检测更准确,但同时也会占用更多的计算资源。 使用 Unity 自动生成碰撞非常简单,只需在导入模型后,在模型设置中选择合适的 Collider 类型,并勾选自动生成选项。Unity 会自动根据模型形状生成相应的碰撞,可以通过调整碰撞的尺寸、位置和旋转等参数,进一步优化碰撞效果。 需要注意的是,自动生成碰撞并不一定能够满足精确的碰撞需求。有些复杂的模型可能无法正确生成碰撞,这时需要手动添加和调整碰撞。同时,当模型发生变形或动画时,自动生成的碰撞可能无法跟随变化,需要使用代码或脚本来更新或调整碰撞。 总而言之,Unity 可以根据模型形状自动生成碰撞,提供方便的碰撞检测功能。开发者可以根据具体情况选择适合的碰撞类型,并根据需要手动调整和优化碰撞,以实现更好的碰撞效果和游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值