Я написал сценарий, который вращает куб, но звучит так, будто при вращении куба в воздухе или при столкновении с лестницей возникает какое-то воздушное сопротивление.
Я пробовал следующий код, но до этого я использовал addTorque, но он также не работал:
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
input = false;
StartCoroutine("moveLeft");
}
void moveLeft()
{
Vector3 moveDirection = Vector3.left;
Vector3 pivot = Player.transform.position;
pivot += moveDirection * 0.5f;
pivot -= Vector3.up * 0.5f;
Vector3 axis = Vector3.forward;
float degrees = 90;
StartCoroutine(FlipOverEdge(degrees, pivot, axis));
}
IEnumerator FlipOverEdge(float degrees, Vector3 pivot, Vector3 axis)
{
int frames = 12;
float degreesPerFrame = degrees / (float)frames;
for (int i = 1; i <= frames; i++)
{
Player.transform.RotateAround(pivot, axis, degreesPerFrame);
yield return new WaitForFixedUpdate();
}
input = true;
}
Куб должен вращаться примерно так, как показано в следующем видео:
https://www.youtube.com/watch?v=fo-7kKeb-TM