Unity3d Unity:如何使用Vector3.Lerp函数一个接一个地创建和放大100个立方体

Unity3d Unity:如何使用Vector3.Lerp函数一个接一个地创建和放大100个立方体,unity3d,lerp,Unity3d,Lerp,如何使用Vector3.Lerp函数一个接一个地创建和放大100个立方体。我需要依赖于持续时间变量。我需要一个有效的方法。尽管你的问题很模糊: 使用一个类似的单词 //在Inspector中调整这些 [Serialaizefield]私有向量3 targetScale=向量3.1; [SerialaizeField]专用向量3 startScale=Vector3.0; [SerialaizeField]专用浮动持续时间PerCube=1f; [SerialaizeField]私有转换[]多维数

如何使用Vector3.Lerp函数一个接一个地创建和放大100个立方体。我需要依赖于持续时间变量。我需要一个有效的方法。

尽管你的问题很模糊:

使用一个类似的单词

//在Inspector中调整这些
[Serialaizefield]私有向量3 targetScale=向量3.1;
[SerialaizeField]专用向量3 startScale=Vector3.0;
[SerialaizeField]专用浮动持续时间PerCube=1f;
[SerialaizeField]私有转换[]多维数据集;
私有IEnumerator ScaleUpRoutine()
{
如果(立方体长度==0)屈服断裂;
foreach(多维数据集中的变量多维数据集)
{
var timePassed=0f;
while(经过的时间
您可以随时通过
启动例行程序启动它,例如

private void Start()
{
start例程(ScaleUpRoutine);
}

如果你想基于总的持续时间,你可以这样做

//在Inspector中进行调整
[Serialaizefield]私人浮动总持续时间=2f;
私有IEnumerator ScaleUpRoutine()
{
如果(立方体长度==0)屈服断裂;
var durationPerCube=总持续时间/立方体长度;
...
请记住,
yield return null;
当前每个多维数据集至少等待一帧,因此如果您的
总持续时间
非常小(<100帧),则可能不准确。在这种情况下,您可能需要添加一个,以便在某个实时阈值之后仅
yield return
一帧,如

。。。
私有IEnumerator ScaleUpRoutine()
{
如果(立方体长度==0)屈服断裂;
var stopWatch=新秒表();
stopWatch.Restart();
...
while(经过的时间=maxMillisecondPerFrame)
{
收益返回空;
stopWatch.Restart();
}
}
...

对于创建部分:您不应该这样做。

根据你的需要,我也会

  • 使用场景中已包含100个立方体的隐藏对象。仅在需要时显示
  • 将同样的想法进一步扩展,改用

谢谢您的回答,但我的主要问题是如何在场景中高效地创建100个立方体?@Elif好吧……老实说,这是一个完全不同的问题^^……快速回答:您不应该。请改用