爆炸图

作者: 不决书 | 来源:发表于2023-05-07 09:06 被阅读0次

方案

  1. 获取爆炸图扩展的集中点,一般是模型的 世界位置 getWorldPosition 或者是 中心位置 box3.getCenter
  2. 每次爆炸前要恢复到初始化的状态,一般通过记录上次matrixworld的逆矩阵 新的位置 applyMatrix4来还原
  3. 爆炸前需要记录,循环深度遍历所有的子对象
  {
    position:  '爆炸前对象的世界坐标位置'
    dir: '爆炸对象与模型整体基准点的方向'
    matrix:  '爆炸前对象的父级的世界矩阵的逆矩阵( object3d.parent.matrixWorld.clone().invert())'
  }
  1. 根据爆炸量,爆炸方向、计算出爆炸对象的新的世界位置,然后将位置转化为局部坐标赋值给对象
       // 世界坐标转化为局部坐标
       object3d.parent.worldToLocal(pos)
       // 赋值给对象
       object3d.position.copy(pos)
  1. 还原的时候,同 步骤2

相关文章

网友评论

      本文标题:爆炸图

      本文链接:https://www.haomeiwen.com/subject/nxyhsdtx.html