Как сделать платформер на Unity? - PullRequest
0 голосов
/ 25 мая 2020

(я новичок в stackoverflow, могу спросить немного иначе)

Как создать платформер в Unity?

Unity 2020.2. 0a11.1312.3

Информация перед запуском: хочу сделать мобильную игру.

(с некоторыми кнопками)

Здравствуйте, я хочу сделать платформер на Unity.

Я пытался использовать метод Rigidbody2D.AddForce(), но не смог заставить его работать.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 25 мая 2020

Обычно я не работаю над мобильными играми в Unity, но, как правило, это причины, по которым жесткие тела не работают.

  1. Убедитесь, что скрипт соединен с объектом с жестким телом, перетаскивая сценарий на объект.
  2. Используйте RigidBody2D Rigidbody2D = GetComponent<RigidBody2D>() в начале вашего скрипта.
  3. Если вы используете метод AddForce() в функции Start(), вам необходимо переместите его в функцию FixedUpdate().
  4. Иногда движение действительно работает, но оно не перемещает объект очень быстро, потому что не хватает силы, поэтому вам, возможно, придется увеличить силу.
  5. Убедитесь, что к Rigidbody не наложены ограничения движения.
  6. Поскольку вы работаете с кнопками, вам придется связать кнопки со скриптом с жестким телом, например:

    public void OnPointerDown(PointerEventData eventData)
    {
        //Start moving logic
        moving = true
    }
    public void OnPointerUp(PointerEventData eventData)
    {
        //Stop moving logic
        moving = false
    }

    private void FixedUpdate(){
      if(moving){
        //Moving
        Rigidbody2D.AddForce(force * Time.deltaTime)
      }else{
        //Not moving
      }
    }

Так как OnPointerUp / Down вызывается только один раз, когда происходит событие, вам нужно поместить начало движения logi c в OnPointerDown и прекратить перемещение объекта в OnPointerUp.

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