布料

布料组件

Unity提供了一组和布料相关的物理组件:

  • InteractiveCloth:交互布料,用于模拟普通的布。
  • SkinCloth:蒙皮布料,用于模拟衣服。
  • ClothRenderer:布料显示器,用于显示布料。

在Unity中模拟布料

  • 既然属于物理系统,布料组件的重点不是为了显示布料,而是模拟布料的受力时运功的变化。
  • 布料在运动时要计算各个点的受力,因此要消耗一定性能。
  • 实际开发时如果关注的是布料的显示而不是受力,可以使动画、Shader等替代方案。

布料的属性

布料中比较重要的属性有:

  • 重力。布料属于物理组件,不用个物体添加刚体,只需要设置布料UseGravity属性即可。
  • 附着。让布料附着在其他物体上不掉下来,可以使用AttachedColliders属性,这是一个数组,布料可以同时附着多个物体。被附着的物体一定要有碰撞器。
  • 撕裂。AttachedColliders中有一个Tearable属性表示是否布料可以从这个附着体上撕裂,布料还有一个TearFactor属性说明布料顶点被拉到多大时能撕裂。

将模型变成布料

在实际开发中我们有时会希望把美术给我们的小模型变成布料,具体做法需要以下3步:

  • Interactive Cloth替代Collider,并设置Mesh等属性。
  • Cloth Renderer替代 Renderer,并设置Materials等属性。
  • 修改附着等布料属性

Demo 篮球

  • 将篮球网模型变成布料