Я искал всюду, включая документацию Unity, но не могу найти хороших примеров того, как использовать функцию Vector2.Reflect() Unity. Я пытаюсь использовать это для управления направлением мяча (в 2D Breakout), когда он попадает в стену. Он принимает 2 аргумента (inDirection, inNormal), но я не могу понять, как это использовать. Любая помощь будет оценена по достоинству.Unity - как использовать Vector2.Reflect()
1
A
ответ
3
inDirection
должен быть скоростью вашего шара, а inNormal
должен быть единым вектором, который перпендикулярен вашей стене.
Попробуйте поместить это в мяч объект:
void OnCollisionEnter(Collision collision)
{
Vector2D inDirection = GetComponent<RigidBody2D>().velocity;
Vector2D inNormal = collision.contacts[0].normal;
Vector2D newVelocity = Vector2D.Reflect(inDirection, inNormal);
}
Примечание: Я не могу в настоящее время проверить, что код, так что, возможно, потребуется настройки с точки зрения названий вещей.
5
Как говорят параметры, одно направление шара а другой - нормали стены. –
Почему вы помечаете [тег: unity3d] в двумерном вопросе? – devRicher
Unity3D - это имя приложения, которое я использую для создания 2D-игры. – Kaz