爆炸图

2023-05-07  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读