Привет, друзья! В новом уроке по Unity и программированию на C# мы возьмемся за 2D-персонажей для Unity. Мы научим вас добавлять выбор персонажа в игры. В нашем случае 2D-персонажами для Юнити станут супергерои: в самом начале игры вы сможете решить, хотите вы играть на Капитана Америку или Железного человека. Давайте начинать!
Для этого урока нам потребуется спрайты (фон, два спрайта персонажа). Вы можете скачать их по ссылке.
Создаем пустой объект, добавляем на него компонент sprite Renderer и оставляем его пустым. Создаем канвас (Canvas), на нем панель, добавляем фон на панель в компонент Image. На панели создаем кнопку, настраиваем ее размер, удаляем текст с кнопки, дублируем кнопку и меняем на другой спрайт персонажа. Можем добавить текст на панель “Выбери персонажа”.
Далее создаем скрипт. Открываем и в нем объявляем две переменные:
panelChatacter - панель выбора персонажа.
count - какой спрайт персонажа будет.
Создаем функцию для первого персонажа CharacterOne. Если нажали на первую кнопку, то в count записываем 1.
Создаем функцию для второго персонажа CharacterTwo. Если нажали на второю кнопку, то в count записываем 2.
И как мы видели выше, идет вызов функции ResultCharacter. В ней мы проверяем, чему равен count, и подгружаем спрайт, который соответствует спрайту на кнопке, и скрываем панель.
Переходим в Юнити. В коде у нас прописано, что мы будем грузить из папки Resources, — это стандартный метод Юнити. Чтобы все работало, нам нужно создать папку Resources, в нее перемещаем спрайты персонажей. В кавычках пишем название спрайтов. Перемещаем скрипт на персонажа и в инспектор добавляем панель. Переходим на кнопки и в инспекторе назначаем функции. Нажимаем на плюс, в пустое окно перемещаем главного персонажа и выбираем функцию, которая подгружает нужный спрайт.
Запускаем и проверяем.
Если вы хотите научиться делать сложные многоуровневые 2D- и 3D-игры на Юнити, приходите на полный курс по Unity и С# в школу "Пиксель"! Там мы расскажем подробнее, как программировать в Юнити управление персонажем, как писать скрипт для движения персонажа, делать анимацию персонажа в Unity 2D и Unity 3D, учить его прыгать и многое другое.
Полный скрипт:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class CharacterManager : MonoBehaviour { public GameObject panelCharacter; public int count; public void CharacterOne() { count = 1; ResultCharacter(); } public void CharacterTwo() { count = 2; ResultCharacter(); } public void ResultCharacter() { if (count == 1) { gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("superhero1");
} if (count == 2) { gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("superhero");