Physics In Unity Game (эффект маятника) - PullRequest
4 голосов
/ 20 марта 2019

Итак, я действительно не знаю, как искать ответ на мой вопрос, я работаю разработчиком игры для фрилансера, и моей задачей было создать «маятниковую платформу», вот концепция:

enter image description here

Я перепробовал множество различных подходов, например, например, установление ящиков столкновения по бокам платформы и когда игрок входит в поле столкновения,Платформа будет двигаться как маятник.

Но я всегда сталкивался с множеством глюков, и когда мне удавалось решить все из них, движение было неестественным.

Вот один изспособы, которыми я пытался:

public IEnumerator RotatesTowardsLeft()
{
    while (transform.parent.eulerAngles.z < 25 || transform.parent.eulerAngles.z >= 330)//25
    {
        transform.parent.eulerAngles += new Vector3(0, 0, speed);
        yield return new WaitForSeconds(0.01f);
    }
    currentDirection = Directions.Left;
}

public IEnumerator RotatesTowardsRight()
{
    while (transform.parent.eulerAngles.z > 335 || transform.parent.eulerAngles.z < 30)
    {
        transform.parent.eulerAngles += new Vector3(0, 0, -speed);
        yield return new WaitForSeconds(0.01f);
    }
    currentDirection = Directions.Right;
}

Так что, если бы кто-нибудь мог мне помочь, это значило бы много, потому что я чувствую, что у меня заканчиваются варианты ...

1 Ответ

4 голосов
/ 20 марта 2019

Попробуйте использовать физические объекты и прикрепите ConfigurableJoint к вашему объекту. (Если вы работаете в 2D, используйте DistanceJoint2D). Затем вы можете выбрать место для присоединения к соединению над ним, и оно должно дать вам желаемый эффект без набора кода. Имейте в виду, что если вы работаете в 3D, для настройки ConfigurableJoint потребуется немного больше работы, например, ограничение некоторых осей и усилия пружины.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...