Как заставить персонажа двигаться в Unity 2d

В прошлой статье мы рассказывали вам как создать анимацию в 2d проекте Unity5. В этой статье мы продолжим и реализуем движение нашей "птицы" - персонажа при помощи компонента rigidbody 2d "физики". На нашей сцене уже имеется заготовка персонажа с анимацией, добавим к ней компоненты Box Collider 2d и Rigidbody 2d и настроим компонент так как на скриншоте rogibody2d Далее создадим скрипт к примеру TransformPlayer с таким кодом:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TransformPlayer : MonoBehaviour {

    private Transform _transform;
    private Rigidbody2D _rigibody;
    
    // Use this for initialization
	void Start () {
        _transform = GetComponent();
        _rigibody = GetComponent();

    }
	
	// Update is called once per frame
	void Update () {
       
        if (Input.GetKey(KeyCode.W) && this._transform.localPosition.y <= 5f)
        {
          
            _rigibody.gravityScale = -0.5f;
        }
        else {
            _rigibody.gravityScale = 0.5f;
        }


    }
}
В этом скрипте указано, что при нажатии на кнопку w значение гравитации у персонажа меняется, а при отпускании, клавиши значение восстанавливается, таким образом, персонажа всегда падать, если не нажимать кнопку w. Далее, как токового движения вперед у нас не реализовано,  но симуляцию движения можно реализовать при помощи фоновых объектов. Добавим на сцену спрайты земли и продублируем 4 раза, на каждый компонент вешаем те же компоненты  Box Collider 2d и Rigidbody 2d, создадим еще один скрипт TransformGround ground
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TransformGround : MonoBehaviour {


    public Transform GameObjectCamera;



    // Update is called once per frame
    void Update()
    {

            this.gameObject.transform.localPosition = new Vector3(this.gameObject.transform.localPosition.x - 0.1f, this.gameObject.transform.localPosition.y, this.gameObject.transform.localPosition.z);

    }

    public void OnCollisionEnter2D(Collision2D collision) {
        if (collision.gameObject.tag == "barer") {
            this.transform.position = new Vector3(GameObjectCamera.transform.position.x, GameObjectCamera.transform.position.y, GameObjectCamera.transform.position.z);
        }
    }
}
В этом скрипте, в методе Update реализована функция постоянного движения объекта по оси х , но при столкновении этого объекта с другим, у которого тэг barer, нашему объекту присвоится другая позиция на сцене, таким образом наши 4 объекта земли будут зациклены в движении . Теперь подробнее... Создадим на камере два пустых объекта, один разместим слева и добавим Box Collider 2d и Rigidbody 2d, так же присвоим ему тэг, который указали в скрипте barer, а другой справа. Примерно так... gameobject 2d На объектах "земли" укажем этот объект который справа. Теперь можно поверить запустив игру transformrigibodi Птица управляется, движение  земли создает эффект движения птицы. В следующих уроках можно реализовать рандомное появление объектов на сцене и столкновение персонажа с ними. На это все удачных проектов.
Похожие статьи
Unity 2d Как создать кликер
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

726 просмотров всего, 3 просмотров сегодня

0
#Unity 5#2D
Подробнее
Unity 2d. Спрайты для 2d игр
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

546 просмотров всего, 5 просмотров сегодня

0
#2D
Подробнее
2d анимация в unity
2 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 5

702 просмотров всего, 4 просмотров сегодня

0
#Unity 5#2D
Подробнее
Как добавить видео в Unity 5
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

1,699 просмотров всего, 376 просмотров сегодня

0
#Unity 5
Подробнее
Добавить комментарий
Оцените статью
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Ваш e-mail не будет опубликован.