Unity3d Unity:如何使用Vector3.Lerp函数一个接一个地创建和放大100个立方体
如何使用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]私有转换[]多维数
//在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好吧……老实说,这是一个完全不同的问题^^……快速回答:您不应该。请改用