Я пытаюсь анимировать сборку платформы, которая порождена (сам объект платформы находится в пределах пустого, потому что изменяется его положение) DOWN, когда объект Runner сталкивается с ним (onCollisonEnter) и UP при удалении столкновения.Unity - Как оживить платформу двигаться вверх и вниз по столкновению, входить и выходить с помощью Lerp?
Я следовал за ответы, данные на мой старый вопрос здесь verbatim- Unity, C# - cannot make object move down from current y position ONCE on collision enter?, но не может получить анимацию с помощью Аниматор работать, несмотря на это в моем аниматора, как указано:
Один человек, который ответил предложил использовать Lerp для анимирования платформы prefab полностью с помощью кода. Я исследовал Lerp, но поскольку мне нужно два отдельных состояния для Down/Idle Down (чтобы платформа оставалась вниз), и то же самое для up/freele, я не знаю, как это сделать.
Как я могу достичь этого эффекта, используя программный код Lerp? Можно ли добиться эффекта, который я собираюсь сделать?
ОШИБКА:
EDIT:
как я икру (Dequeue затем Епдиеие) мои платформы:
nextPosition += new Vector3 (
Random.Range (minGap.x, maxGap.x) + scale.x,
Random.Range (minGap.y, maxGap.y),
Random.Range (minGap.z, maxGap.z));
Transform o = objectQueue.Dequeue();
o.localScale = scale;
o.localPosition = position;
//o.localEulerAngles = rotation;
o.gameObject.SetActive (true);
int materialIndex = Random.Range(0, materials.Length);
o.GetComponent<Renderer>().material = materials[materialIndex];
o.GetComponent<Collider>().material = noFrictionMaterial;
platform newScript = new o.GetComponent<platform>(); //getting an error here when I tried to implement your code
objectQueue.Enqueue (o);
if(nextPosition.y < minY){
nextPosition.y = minY + maxGap.y;
}
else if(nextPosition.y > maxY){
nextPosition.y = maxY - maxGap.y;
}
Это то, что векторы должны всегда быть и то, что я установить их в начале в начале():
up = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
down = new Vector3 (transform.position.x, transform.position.y-2f, transform.position.z);
Поскольку платформы на самом деле не созданы, вы уверены, что это ошибка? Вы можете мне помочь?
Просто пойдите вверх и вниз с 'Lerp'? Например, прыгайте вверх и вниз. Было бы хорошо знать, что именно вы пытаетесь сделать. – Programmer