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

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

  • 相关阅读:
    使用OkHttp库爬取百度云视频详细步骤
    JDK1.8新特性---Lambda表达式
    解决Error in rawToChar(block[seq_len(ns)]) :
    2022“易观之星”年度奖项启动征集,发现卓越数智力量
    OpenHarmony 4.0 源码编译hb 问题排查记录
    基于vue+Java实现的餐厅订餐点餐管理系统
    心法利器[77] | 文本分类日常提点技巧
    deepin V23通过flathub安装steam畅玩游戏
    JavaSE面试题03:方法的参数传递机制
    中英文说明书丨CalBioreagents艾美捷重组丁型肝炎病毒蛋白
  • 原文地址:https://blog.csdn.net/suixinger_lmh/article/details/125415459