布料
布料组件
Unity提供了一组和布料相关的物理组件:
InteractiveCloth
:交互布料,用于模拟普通的布。SkinCloth
:蒙皮布料,用于模拟衣服。ClothRenderer
:布料显示器,用于显示布料。
在Unity中模拟布料
- 既然属于物理系统,布料组件的重点不是为了显示布料,而是模拟布料的受力时运功的变化。
- 布料在运动时要计算各个点的受力,因此要消耗一定性能。
- 实际开发时如果关注的是布料的显示而不是受力,可以使动画、Shader等替代方案。
布料的属性
布料中比较重要的属性有:
- 重力。布料属于物理组件,不用个物体添加刚体,只需要设置布料
UseGravity
属性即可。 - 附着。让布料附着在其他物体上不掉下来,可以使用
AttachedColliders
属性,这是一个数组,布料可以同时附着多个物体。被附着的物体一定要有碰撞器。 - 撕裂。
AttachedColliders
中有一个Tearable
属性表示是否布料可以从这个附着体上撕裂,布料还有一个TearFactor
属性说明布料顶点被拉到多大时能撕裂。
将模型变成布料
在实际开发中我们有时会希望把美术给我们的小模型变成布料,具体做法需要以下3步:
Interactive Cloth
替代Collider
,并设置Mesh
等属性。Cloth Renderer
替代Renderer
,并设置Materials
等属性。- 修改附着等布料属性
Demo 篮球
- 将篮球网模型变成布料