Простой кликер-платформер на движке 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 }Видео:Как сделать КЛИКЕР за 8 минут | Unity, C#Скачать
- Ну и второй скрипт, который будет отвечать за назначение клавиш управления персонажем
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(); }Видео:КАК СОЗДАТЬ КЛИКЕР НА UNITY??? ПОДРОБНЫЙ ГАЙД ДЛЯ НОВИЧКОВ! unity уроки разработка игрСкачать
Собственно, при наличии вышеперечисленных компонентов можно создать управляемый объект на сцене.
Далее, на создании самой сцены мы останавливаться не будем, она может выглядеть на ваш вкус и цвет, ну и если вы это читаете, то наверняка умеете переносить игровые объекты на сцену. А вот на самих игровых объектах остановимся поподробней.
Суть игры — пройти уровень не потеряв жизни, собственно не умереть, в этом нам помогут вспомогательные объекты, которые мы разместим на сцене и помешают различные преграды.
Разместим на сцене поваленное дерево, которое помешает пройти нашему персонажу и от которого нужно избавится, как вариант — разрубить.
Поместим дерево и топор, который поможет нам пройти. На них поместим объекты Box Collider2d и обработчик Event Trigger (про это больше упоминать не будем, эти компоненты будут присутствовать на всех последующих игровых объектах )
Видео:Clicker на Unity | Unity для детей | Unity с нуля | Курс Си Шарп для детей | Игр в Unity ClickerСкачать
Создадим простой скрипт, где при нажатии мышкой на объект топор он будет как-бы в руке и при нажатии мышкой на дерево мы будем проверять, если топор в руке то удаляем дерево, если нет …. то нет.
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) можно и дальше размещать объекты на сцене, которые будут преграждать путь или будут помогать персонажу пройти уровень.
Итак, я немного доработал и в итоге вы можете посмотреть на видео что может получится.
На этом все, удачных проектов)!
💡 Видео
Как создать кликер на Unity | 1 ЧАСТЬСкачать
Сделал Clicker на Unity за 4 минуты | Как создать игру | Кликер на Unity | Создание игр на ЮнитиСкачать
ДОХОД С ИГРЫ спустя 2 МЕСЯЦА & Обновление КЛИКЕРА | Unity, Gamedev, РекламаСкачать
как сделать КЛИКЕР | Часть 1 | Unity, C# - Получение валютыСкачать
Вот как Создать Простую Игру за 10 минуток на Unity / Unity 2d / C# / Как создать игруСкачать
Создание кликера на Unity| Unity2dСкачать
СОЗДАЮ КЛИКЕР на UNITY |Часть 1| Unity C# - Магазин и улучшенияСкачать
как создать кликер игру на Unity #1Скачать
КАК СОЗДАТЬ ИГРУ ЗА 5 МИНУТ? / Unity Создание ИгрСкачать
КАК СОЗДАТЬ ИГРУ КЛИКЕР НА UNITY || №1Скачать
Создание кликера на Unity #1 | КАК СОЗДАТЬ ИГРУ НА [UNITY] | РАЗРАБОТКА ИГРЫ #unity3d #rimurudevСкачать
как сделать КЛИКЕР | Часть 2 | Unity, C# - Магазин улучшений и бонусыСкачать
Создание кликера на Unity #4 - Переделываем систему достиженийСкачать