Простой кликер-платформер на движке Unity
Совсем недавно, на нашем сайте, было опубликовано несколько статей о том, как создать анимацию и о том, как заставить двигаться персонажа, при создании 2d игры в Unity. В этой статье мы хотим показать вам как на основе тех знаний и на основе новых, которые мы получим в ходе изучения этой статьи, создать простой 2d кликер-платформер.
Итак, на основе этих статей:
и использования готовых 2d спрайтов из этой статьи
Мы уже подготовили готовую сцену с работоспособным персонажем
Ну если разобрать более детально, то :
- на игровой объект (GameObject) помещаем компонент Sprite Renderer, где в поле Sprite помещаем нужный нам спрайт (изображение)
- добавляем компоненты Collider 2d, Box или Circle в зависимости от строения изображения, можно несколько
- компонент Rigidbody 2D обязательно, так как он будет отвечать за движение персонажа
- компонент Animator с нужной нам анимацией
- ну и несколько скриптов, первый скрипт отвечает за перемещение персонажа по сцена
public float WalkSpeed = 2; private MoveState _moveState = MoveState.Idle; private DirectionState _directionalState = DirectionState.Right; private Transform _transform; private Rigidbody2D _rigidbody; private Animator _animatorController; private float _walkTime = 0, _walkCooldown = 0.2f; private void Start() { _transform = GetComponent(); _rigidbody = GetComponent(); _animatorController = GetComponent(); _directionalState = transform.localScale.x > 0 ? DirectionState.Right : DirectionState.Left;
} public void MoveRight() { _moveState = MoveState.Walk; if (_directionalState == DirectionState.Left) { transform.localScale = new Vector3(-_transform.localScale.x, _transform.localScale.y, _transform.localScale.z); _directionalState = DirectionState.Right; } _walkTime = _walkCooldown; _animatorController.Play("Walk"); } public void MoveLeft() { _moveState = MoveState.Walk; if (_directionalState == DirectionState.Right) { transform.localScale = new Vector3(-_transform.localScale.x, _transform.localScale.y, _transform.localScale.z); _directionalState = DirectionState.Left; } _walkTime = _walkCooldown; _animatorController.Play("Walk"); } private void Update() { if (_moveState == MoveState.Walk) { _rigidbody.velocity = ((_directionalState == DirectionState.Right ? Vector2.right : -Vector2.right) * WalkSpeed * Time.deltaTime); _walkTime -= Time.deltaTime; if (_walkTime <= 0) { Idle(); } } } void Idle() { _moveState = MoveState.Idle; _animatorController.Play("Idle"); } enum MoveState { Idle, Walk, } enum DirectionState { Right, Left }Видео:КАК СОЗДАТЬ КЛИКЕР НА UNITY??? ПОДРОБНЫЙ ГАЙД ДЛЯ НОВИЧКОВ! unity уроки разработка игрСкачать
- Ну и второй скрипт, который будет отвечать за назначение клавиш управления персонажем
private Player Player; // Use this for initialization void Start () { Player = Player == null ? GetComponent() : Player; if (Player == null) { } }
// Update is called once per frame void Update() { if (Player != null) { if (Input.GetKey(KeyCode.D)) { Player.MoveRight(); } if (Input.GetKey(KeyCode.A)) { Player.MoveLeft(); } } } public void WailkRight() { Player.MoveRight(); } public void WalkLeft() { Player.MoveLeft(); }Видео:Clicker на Unity | Unity для детей | Unity с нуля | Курс Си Шарп для детей | Игр в Unity ClickerСкачать
Собственно, при наличии вышеперечисленных компонентов можно создать управляемый объект на сцене.
Далее, на создании самой сцены мы останавливаться не будем, она может выглядеть на ваш вкус и цвет, ну и если вы это читаете, то наверняка умеете переносить игровые объекты на сцену. А вот на самих игровых объектах остановимся поподробней.
Суть игры — пройти уровень не потеряв жизни, собственно не умереть, в этом нам помогут вспомогательные объекты, которые мы разместим на сцене и помешают различные преграды.
Разместим на сцене поваленное дерево, которое помешает пройти нашему персонажу и от которого нужно избавится, как вариант — разрубить.
Поместим дерево и топор, который поможет нам пройти. На них поместим объекты Box Collider2d и обработчик Event Trigger (про это больше упоминать не будем, эти компоненты будут присутствовать на всех последующих игровых объектах )
Видео:Как сделать КЛИКЕР за 8 минут | Unity, C#Скачать
Создадим простой скрипт, где при нажатии мышкой на объект топор он будет как-бы в руке и при нажатии мышкой на дерево мы будем проверять, если топор в руке то удаляем дерево, если нет …. то нет.
public GameObject rukaobject; // Use this for initialization void Start() { } // Update is called once per frame void Update() { } public void OnClick() { if (this.gameObject.tag == "Topor") { rukaobject = this.gameObject; } if (this.gameObject.tag == "DerevoPolom") { if (rukaobject == GameObject.FindGameObjectWithTag("Topor")) { Destroy(gameObject); } } }
Теперь вернемся к объектам на сцене (топор и дерево), поместим этот скрипт на них, в компоненте Event Trigger создадим новый тип Pointer Click и укажем эти объекты в этом типе (каждый в своем), так же укажем скрипт и функцию OnClick. Ну и не забудьте присвоить тэги объектам, которые указали в скрипте.
У меня немного доработано, но смысл тот же:
Подходим к дереву, но оно не дает нам пройти, нажимаем на него ничего не происходит
Видео:Я Сделал Кликер на Unity!Скачать
находи топор, берем его
и снова к дереву, дерево исчезает
Первая преграда пройдена, далее реализуем столкновение персонажа с игровыми объектами, например, поместим на сцену паука и при столкновении с ним персонажа будет отбрасывать назад.
Создадим еще один скрипт в котором будем использовать функцию обработки столкновений коллайдеров
private void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Pauk") { this.gameObject.GetComponent().MovePosition(Vector2.left * 10 * Time.deltaTime); } }
Соответственно, на паука вешаем Box Collider с галочкой isTrigger и указываем тэг, который указали в скрипте.
Видео:Как создать кликер на Unity | 1 ЧАСТЬСкачать
На основе функции OnClick() и OnTriggerEnter2D(Collider2D other) можно и дальше размещать объекты на сцене, которые будут преграждать путь или будут помогать персонажу пройти уровень.
Итак, я немного доработал и в итоге вы можете посмотреть на видео что может получится.
На этом все, удачных проектов)!
📽️ Видео
Сделал Clicker на Unity за 4 минуты | Как создать игру | Кликер на Unity | Создание игр на ЮнитиСкачать
Создание кликера на Unity #1Скачать
ДОХОД С ИГРЫ спустя 2 МЕСЯЦА & Обновление КЛИКЕРА | Unity, Gamedev, РекламаСкачать
как сделать КЛИКЕР | Часть 1 | Unity, C# - Получение валютыСкачать
СОЗДАЮ КЛИКЕР на UNITY |Часть 1| Unity C# - Магазин и улучшенияСкачать
Вот как Создать Простую Игру за 10 минуток на Unity / Unity 2d / C# / Как создать игруСкачать
как создать кликер игру на Unity #1Скачать
Создание кликера на Unity| Unity2dСкачать
как сделать КЛИКЕР | Часть 2 | Unity, C# - Магазин улучшений и бонусыСкачать
КАК СОЗДАТЬ ИГРУ КЛИКЕР НА UNITY || №1Скачать
Создание кликера на Unity #1 | КАК СОЗДАТЬ ИГРУ НА [UNITY] | РАЗРАБОТКА ИГРЫ #unity3d #rimurudevСкачать
КАК СОЗДАТЬ ИГРУ ЗА 5 МИНУТ? / Unity Создание ИгрСкачать
Создание кликера на Unity #4 - Переделываем систему достиженийСкачать