Unity布料系统_Cloth组件(包含动态调用相关)

Unity布料系统

说明:

unity自带的布料物理系统

使用:

  1. 新建空物体;
  2. 添加cloth组件,unity会自动附带skinned mesh renderer组件;
  3. 将需要的网格和材质,赋值给skinned mesh renderer组件;
  4. 点击cloth组件的左上角的图标(Edit cloth constraints);
  5. scene面板中会出现布料参数调节面板(看不到的打开Gizmos,显示场景图标);
  6. 在模型上选中对应顶点(顶点过大或过小的话,调节Constraint Size的大小到合适的值);
  7. 根据需求对选中的点进行限制(例如:连接旗杆的那条边一般不会动,勾选Max Distance 值设置为0;让其不能移动);

要点:

1.布料系统目前只能和Capsule Collider 以及Sphere Collider 两种碰撞体交互;
2.要将参与布料物理系统的物体的碰撞体拖入cloth组件的碰撞体组中;

动态调用相关:

问题:

看布料的使用方式基本上就是不建议动态去使用,但其实动态去使用也是可行的。
不过动态调用存在很多问题:

  1. 动态的给cloth组件添加碰撞体,虽然可以一直添加,但是超过一定数量时,多余的碰撞体并不能够产生物理效果。
  2. 在布料系统发生物理效果时,如果去改变(删除)碰撞体个数,物理效果会产生突变。在暂时无交互时改变是可行的。
  3. 添加到布料系统中的碰撞体,即使将物体隐藏掉,enable=false掉,依旧会产生物理效果,甚至于使用position=newpos来改变碰撞体的位置,newpos和当前路径之间经过布料系统,依旧能够发生物理效果。
    第三条的效果有些类似于character controller与刚体的一些特性,但布料貌似是将所有数据都放在布料系统里计算了。

这就很坑,要解决第三条,就要把碰撞体从cloth中移除,要移除,就会碰到第二条的问题,需要保证cloth没有在交互中。

因为是直接使用的,等回头看看官方文档再做修改。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>