• 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没有在交互中。

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

  • 相关阅读:
    MySQL:创建用户报错1396 - Operation CREATE USER failed for ‘kingbal‘@‘%‘
    ms office学习记录11:Excel㈤
    MySQL进阶_索引
    Allegro模块镜像详细操作教程
    什么是区块链,解释区块链的原理和应用场景
    富文本框编辑器 图片粘贴上传,实现图文粘贴,图片自动上传
    XPS数据处理(二)-科学指南针
    nginx利用x_forwarded_for实现黑名单访问策略
    adb命令大全
    MindFusion.WinForms Pack 2022.R2
  • 原文地址:https://blog.csdn.net/suixinger_lmh/article/details/125415459