2D платформер на Unity: управляем котом с помощью джойстика

Как только появилось немного свободного времени, я продолжил знакомство с Unity 3d. В конечном итоге я хочу создать простенький двумерный (2D) платформер – игру, в которой персонажем можно управлять с помощью джойстика. В этом уроке я расскажу вам, как буквально за несколько минут можно создать персонажа и играть в Unity 3d.

Как обычно, все начинается с нового проекта. Выбираем 2D, создаем и видим бескрайнюю плоскость. Не стоит унывать, вскоре мы её заполним. В папке с проектом находим каталог Assets, в нем директорию Textures –копируем туда три картинки. Главный герой – кот Балун:

Его надо добавить спрайтом (мы потом сделаем его анимированным, если руки дойдут) GameObject -> 2D Object -> Sprite. Плоскость, по которой он будет бегать:

И кнопка (или, точнее, табличка) выхода:

Размеры могут не совпадать, это уж поменяйте сами, как угодно – таскайте мышкой за границы объектов. Далее выбираем GameObject -> Camera. В итоге у нас должна получиться такая вот картинка:

Все прекрасно, кроме того, что все неподвижно. Давайте научим Балуна двигаться. Я сразу же решил делать свой 2D платформер под джойстик, хотя, в принципе, можно заставить джойстик работать с любой игрой – читайте эту заметку – но все же мне интересен сам принцип.

Однако, перед тем, как двигаться, надо сделать наши картинки объектами. Для спрайта с котом добавляем два компонента: Physics 2D -> Rigidbody 2D и Physics 2D -> Box Collider 2D. Тоже самое и для изображения поверхности, только у поля Body Type ставим Static – чтобы платформа не падала вниз под собственной тяжестью:

Вот теперь можно приступать к написанию скрипта для движения. Вот листинг скрипта move.cs (пишем на си шарп):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class move : MonoBehaviour {
	Rigidbody2D rb;
	float v = 0.3F;

	void Start () {
		rb = GetComponent<Rigidbody2D>();
	}
	
	void Update () {	
			rb.transform.position = new Vector3 (rb.transform.position.x + Input.GetAxis("Horizontal"), rb.transform.position.y, transform.position.z);
	}      
}

Этот скрипт применяем на спрайт кота. Однако, для окончательной настройки джойстика, надо добавить еще кое-что. Открываем Project Settings -> Input и меняем и меняем имена обработчиков кнопок джойстика в соответствии с вышеприведенным листингом:

Вот теперь все: нашим котом Балуном можно управлять с помощью джойстика: он будет бегать по платформе вправо-влево. На сегодня пока хватит.