如何频繁产生和移动预制物体?

时间:2018-10-02 22:44:00

标签: unity3d

我有一个生成器游戏对象,随机生成2个掉落的预制件。

生成器的第一个版本仅包含生成系统,并且下降效果是预制件所具有的一个组件,问题是我希望随着游戏的进行,SpawnRatio的下降速度和同步性将提高,因此我合并了将生成和掉落的系统放到生成器游戏对象中,现在由于某种原因这些对象正在生成但没有掉落。

async export(comp, doc, save) {
  // create pdf file
  let height = REPORT_PAGE.top;
  const header = comp.reportHeader.nativeElement;
  const headerCanvas = await html2canvas(header, {svgRendering: true});
  height = REPORT_PAGE.top;
  let imgHeightHtml = REPORT_PAGE.header * REPORT_PAGE.width / headerCanvas.width;
  let contentDataURL = headerCanvas.toDataURL('image/png');
  doc.addImage(contentDataURL, 'PNG', REPORT_PAGE.left, height, REPORT_PAGE.width, imgHeightHtml);
  if (save) {
    doc.save('myreport.pdf');
  } else {
    doc.addPage();
  }
}

1 个答案:

答案 0 :(得分:3)

问题在于,每个生成的对象仅调用一次Vector.Translate。您需要在每一帧中都调用它,以使运动继续进行。

最好在立方体和圆形预制件上附加一个单独的运动脚本,以在其自己的Update()函数中调用Vector.Translate

要处理增加的下降速度,您可以让新的运动脚本从生成器脚本中引用一个fallSpeed变量来调整Vector.Translate的速度。

speed = spawner.GetComponent<Random_Spawn>().fallSpeed;