Как сделать 2D платформер на Unity | #1
HTML-код
- Опубликовано: 10 янв 2021
- В этом видео мы начнём создавать 2D платформер на движке Unity.
Добавим фон, платформы для уровней, а также самого игрового персонажа.
Скачать пак графики для платформера:
Яндекс. Диск - yadi.sk/d/oDaUkuSYI3m0Ew
Гугл Диск - drive.google.com/file/d/1zARN...
Как сделать 2D платформер на Unity | #1
unity, как создать игру, разработка игр, unity уроки, создание игр, unity tutorial, unity 2d, платформер, как сделать игру, unity 3d, unity3d, 2d платформер, юнити, c# уроки, c#, c# unity, 2d, с# unity уроки, как скачать юнити, c# tutorial, cube company, c# unity tutorial, как сделать свою игру, програмирование, visual studio, learn unity c#, c# for unity, как начать создавать игры, c# dersleri, unity 2d tutorial, learning c# for unity, learn c#, learn c# for unity, курс по изучение с# unity, игры, c# tutorial for beginners, создание, геймдев, игра, для начинающих, создание игр unity, game, unity2d, platformer, 2д, как создать, tutorial, анимация, как создать свою игру, создание игр для новичков, как, gamedev, разработка, разработчик игр, обучение, инди игры, программирование, юнити уроки, design, основы, sprites, indie gamedev, геймдизайн, как сделать, unity уроки для начинающих, graphical, создание платформера unity, дизайн, графика, уроки по unity, assets, урок, игровые движки, уроки, персонаж, 2d игра, games, создание 2d игры, гайд, 2d platformer, unity 2d уроки, game dev, how to make game, unity 2d платформер, move, unity 5, код, создание игры, 2d platformer unity, asset store, animation, unity 3d tutorial, game dev для начинающих, спрайты, си шарп, как создать платформер на юнити, castadude, beginner, первая игра, unreal, юнити 3д, создание игр в unity, геймдев с нуля, android, управление в платформере на юнити, brackeys, уроки по юнити, development, develop, создание платформера на юнити, платформер юнити, геймдев с чего начать, как сделать управление на юнити, создание игры на unity, как создать игру на андроид, как сделать платформер, unity2d платформер, tutorials, 2д платформер, artalasky, пиксельарт, заргеймдев, юнити2д, #уроки, для ничинающих, юнити 2д, уроки на русском, unity tutorial 2d, 2d unity, easy, курсы программирования, прыжок, unity создание игр, игра на unity, движение, jump, 2d спрайты, создать игру бесплатно, создание 2d игр, unity платформер уроки, 2d платформер на unity, игровая графика, игровой движёк, как создать игру на unity, уроки unity, упровление в unity, #unity, game design, zargamedev, графика для игр, void, войд, студия, public, паблик, unity 2д платформер, bool, privat, прайвет, вижуал, юнити анимация персонажа, работа с персонажом, animations, flip, как создать 2d платформер, code, visual, юнити анимация, платформер на андроид unity, studio, как создать 2d платформер на unity, бул, stickman game, создание игры stickman, создание игры на unity 2d, создание босса, ultima offline, unity stickman, создание игры на unity 2d платформер, игра на unity 2d, unity ragdoll, tgrey, за три минуты, №2, up, cube, вверх, unity 2d для начинающих, создание персонажа, легко, №4, стрельба, 2д-платформер, арталаски, джойстик юнити, course, unity2d смерть персонажа, unity2d воскрешение, переход между сценами, unity2d переход между сценами, счетчик монет, unity2d scenemanagement, scenemanagement, введение, фикс прыжка, главное меню, ui графика, монетки в unity, сбор монет, разработка игры, python pygame, pygame уроки, создание 2d платформера, python на практике, плавная камера, vector3.lerp, unity coint collect, сбор монеток в unity, №3, игрок, атака персонажа, unity c#, онлайн обучение, любимая школа, айти геник, айтигеник, itgen, программист, школа для детей, создание врага, пауза, платформер на unity, персонаж для игры, itgenio, айтигенио, unity game, разработка игр на unity, tutorial unity, 3d unity game, unity 2019, разработка игр на андроид, unity platformer, твоя первая игра на unity, платформер на юнити, твоя первая игра на юнити, unreal engine 4, уроки python, pygame, to, howto, how, textures, models, learn, перевернуть, basic, coding, programming, series, texture, model, создание 2д платформера на юнити, bloodlust, создание игры на юнити 5, как сделать 2д игру на юнити, как сделать игру без программирования, юнити 5 урок, юнити 5 уроки платформер, asset, как сделать свою игру на юнити, как создать свою игру на андроид, платформер на unity 5
###У кого не смещаются системы координат###
Возле элементов управления: перетаскивание, перемещение, вращение и тд(под панелью управления где файл, едит, ассетс и тд)) после гаечного ключа с карандашом есть две кнопки: на одной надпись центр, на другой - глобал. Нажимаете на кнопку центр и она меняется на пайвот. После этого двигаете сам спрайт и при нажитии на обьект херо все получится. Методом тыка понял. Кому не сложно - лайкните, дабы поднять вверх и помочь другим.
лучший
СПС
Нифига непонятно, спасибо
красава помогло
@-vishnevskiy ты про стрелки говоришь? Возможно у тебя персонаж и блоки находятся в одной плоскости с фоном, и поэтому стрелки просто не видно из за этого
Очень классная подача инфы, все получилось, спасибо 👍
Для тех, кто столкнулся с отличиями в новой версии редактора (2021.3.8f1)
- при добавлении спрайта можно выбирать Sprites - Square, это то же самое что и у автора
- если есть проблемы со смещением точки координат - во вкладке Scene, верхняя левая кнопка (если на нее навести то всплывет подсказка "Toogle Tool Handle Position"), нажимаешь на нее и выбираешь в меню Pivot, после этого все получится как в ролике
- если персонаж при прыжке улетает в космос, попробуйте увеличить Mass (в моем случае пришлось поднять до 90, чтобы были адекватные прыжки)
В остальном сделал все в точности как в ролике, все работает
Спасибо бро!
ТЫ ПРОСТО КОСМОС ! СПАСИБО
герой который не носит плащ...
почему-то, после того, как мы сделали нормальный прыжок, у меня персонаж вообще отказался прыгать, сделал всё как на видео
А что делать если я когда добавлял метод для того чтобы один раз можно было прыгнуть И потом я не могу из-за этого прыгать как это исправить
Наконец то нашель дельный урок по Юнити. Ни в одном видео так просто и без лишней воды объяснялось, как создать поатформер. Большое спасибо!
Начал создавать платформер по твоим урокам, доступно и понятно объясняешь, всё круто
Спасибо огромное за такое информативное видео! В моем колледже уже начинается время зачетов и каждый студент должен сдать свой проект. Я решил что создам игру на Unity и нашел тебя! Спасибо огромное, это мой первый проект в жизни!
Понравился урок. А именно то, что в коде не свалено всё в кучу, как у некоторых других блогеров, а расписано по методам. Я считаю что так намного правильней учится. Подписался)
В первом же видео узнал тонну того, что искал несколько дней по чужим обрывкам !! Спасибо Вам !!!!
Спасибо за видео! Начал изучать Unity по твоим видео!
как успехи?
Решение двух проблем с которыми столкнулся я и не только:
1.Если вас персонаж при прыжке улетает в космос то вам надо просто изменить силу прыжка в инспекторе Hero,там снизу будет ваш скрипт в графе Jump Force ставьте так что бы он прыгал адекватно(у меня 6)
2. Если у вас персонаж не прыгает после checkGround то в методе checkground измените радиус с 0.3f до 0.8f
Спасибо , очень помогли
а какой тип спрайта ты выбирал для героя, там просто после обновы нужно обязательно указывать форму спрайта, типа квадрат там или ещё что?
@@chaosdead9083 square
спасибо огромное за второй совет. когда у меня было 0.3 персонаж не всегда прыгал, а после того как я поставил 0.8 персонаж прыгает при каждом нажатии пробела! спасибо!
ребят, у меня проблемки появилась:
1. У меня герой прост так падает сквозь все и когда я удаляю rb2D он не падает, можете помочь разобраться с этим //второй день пытаюсь исправить эту ошибку, вот никак.
2. Проблема после добавления Grounded герой прост не прыгает больше.
Надеюсь на вашу помощь)
Супер! Спасибо большое за подробный урок. Респект учителю 🤘😊
Спасибо за гайд. Пока только начал смотреть, но написал заранее коммент, чтоб продвинуть канал. Спасибо чел =)
Спасибо тебе большое, желаю удачи и продвижения канала!
Всё четко объясняешь и показываешь) Приятно смотреть😊
Что бы поставить несколько блоков в ряд можно не создавать несколько спрайтовых объектов и ставить в ряд(как это показано в видео). Для упрощения работы можно просто в инспекторе спрайта самой картинки Mesh Type сделать Full Rect.
Затем перетягиваем спрайт на объект как в видео и уже на этом спрайтовом объекте ниже в инспекторе видим Draw Mode который переключаем на Tiled и по сути можно растянуть на нужную дину, но нужно учесть что в высоту он тоже дублирует объекты (в данном случае блоки земли) поэтому удерживаем высоту в один блок, но если вытянуть в верх надо то тоже норм, но чтобы сразу в две стороны вытягивать все же придется создать еще один объект.
К слову надо учесть что внезапно спрайт по какой-то причине может сплющить (к сожаления не до конца разобрался) и вывести два сплющенных изображения на месте одного блока. Поэтому следом в draw mode под size выбираем у Tile mode -> Adaptive и перетаскиваем ползунок под ним до значения 1, тогда все коректно отображается.
Ну и затем просто растягиваем бокс колайдер по контуру. Как по мне это в разы быстрее чем пытаться выставить несколько одинаковых блоков в ряд.
Да, тоже получилось. Только в Adaptive ползунок на 0
Спасибо за туториал, надеюсь что канал посмотрят как больше людей.
Спасибо большое за ролики. Надеюсь на твой успех также как и на свой))
Вау, все круто с 6 минуты подписался!
не за что бы не догадался как убрать двойной прыжок, спасибо!
У меня код ни работаит я написал ну он перистал пригат
Вот мне нравится видео с такой спокойной музычкой,и если там ещё спокойный голос,то вообще топчик!
очень полезные 13 минут, спасибо большое, будем смотреть дальше
Хорошая работа, продолжай. Надеюсь, мы сделаем то же самое на канале
Спасибо за труды! Отличное видео.
Огромное спасибо! Бро раньше я не мог делать 2D игры потому что не знал как сделать контроллер а ты показал огромное спасибо тебе и успехов в жизни!!!!!!!
вижу монтаж по-тихоньку лучше становится, молодец👍
Отличное видео, для новичков познавательно!
Спасибо! Отличные уроки.
Спасибо за урок, классный! Попробую поиграться =)
Спасибо за видео, обьясняешь хооошо для новичка , все понятно )
Отличная подача и качество кода, все быстро и по делу!
а как скачать пак графики
описання чек@@user-gy5ed6qq3g
посмотрел 5 минут, но чую прям то что надо!
Большое спасибо за урок, ты очень доступно объясняешь
Начал недавно изучать гейм-дев. Хочу сделать первую игру в качестве обучалки, что да как. Автору спасибо огромное. Всё так чётко и подробно, все ассеты выложил за что отдельный респект.
Спасибо, очень крутая подача инфы)
а как скачать пак графики
О, это просто замечательный ролик. Всё с первого раза легко повторить без ошибок. Буквально полчаса и - оп! - ты с нуля создаёшь магию :-))))
Не знаю, честно есть лишь одна проблема. У меня штука для перемещения персонажа, вот вроде внизу и всё ок. Но тут когда запускаю игру она опять становится по деффолту
о новая рубрика, класс👍
круто, как раз недавно скачал один платформер на телефон, захотел что то подобное сделать
Но ты не выложишь в плей маркет или стим, надо на ссайты, там заработаешь на то чтоб выложить в стим или плей маркет
@@user-sj9wl1oe8n А какие есть сайты?
@@MercifulMarkiz посмотри в ютике там есть
@@user-sj9wl1oe8n Что написать нужно в ютике?
@@MercifulMarkiz лучшие сервера для зароботка на своих играх
Спасибо большое за урок!
Красавчик , продолжай в том же духе 😎
Спасибо за видос, но если можно то больше комментариев вовремя работы с интерфейсом unity. Типа что такое крллайдер, зачем он и т. д.
Немного о том, кто поэтапно разбирает видеоролик, и у кого ошибки такого рода:
Assets\Scripts\Hero.cs(8,34): warning CS0414: The field 'Hero.lives' is assigned but its value is never used
Сделайте так:
[SerializeField] private float speed = 3f; // Скорость двжиения
//[SerializeField] private int lives = 5; // Кол-во жизней
//[SerializeField] private float jumpForce = 15f; // Сила прыжка
Если вы конкретно все делаете поэтапно, то они вам помешают т.к. не дадут возможность потестить ходьбу игрока (Потому что на момент того, как вы хотите проверить ходьбу, данные переменные нигде не используются и что-то ругается), после того как вы их закоментируете, сможете проверить передвижение. После так-же поэтапно, как будете доходить до момента применения live/jumpforce просто уберите два слеша.
Так-же про тех кто не может найти две кнопки, которые описал Alexey Matushkin
Нажмите на своего Hero во вкладке Hierachy и после нажмите на Sprite, который вложен в Hero, после этого загляните в Inspector и в Sprite Renderer буден функция "Sprite Sort Point" там выбран Center поменяйте его на Pivot, вауаля, и все работает.
Если у кого-то не так, простите, я описал то, что конкретно помогло мне.
Аффтор зачот! Хорошо объясняешь в скриптах, что нужно писать, но всем кто тупит советую посмотреть базовый курс по ООП в C#, чтоб хотя бы понимать что такое классы и методы иначе будете сидеть и тупить.
Лучший, спасибо огромное за урок!
Лайк:)
Действительно хорошая обучалка, отдельное спасибо за разъяснение как работает скрипт и все тонкости)))
а как скачать пак графики
Отлично проделанная работа! Замечательно растолкованные и озвученные комментарии к различным строкам кода, так держать! Молодец!
Спасибо за урок, понравилось!
Для создания и публикации в плеймаркет игр на Юнити нужна ее Про версия или достаточно бесплатной Personal с оф.сайта? Или подойдет и пиратка Unity pro c трекеров? ))
Очень хороший видеоурок. Всё понятно, код представлен удобно (представлен в виде стоп-кадра с увеличением, так что всё можно разобрать (спасибо за это большое)).
А можно в конце каждого видео показывать весь код ( а то есть люди например как я которым не очень удобно в таком стиле если не сложно то спасибо ) а так всё круто
да
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
[SerializeField] private float speed = 3f;
[SerializeField] private float jumpForce = 15f;
private bool isGrounded = false;
private Rigidbody2D rb;
private SpriteRenderer sprite;
private void Awake()
{
sprite = GetComponentInChildren();
rb = GetComponent();
}
private void Run()
{
Vector3 dir = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
sprite.flipX = dir.x < 0.0f;
}
private void Update()
{
if (Input.GetButton("Horizontal"))
Run();
if (isGrounded && Input.GetButtonDown("Jump"))
Jump();
}
private void FixedUpdate()
{
CheckGround();
}
private void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
}
private void CheckGround()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
isGrounded = collider.Length > 1;
}
}
@@mr_huro почему у меня работает твой скрипт, но не работает скрипт с видео? там 5 ошибок выскочило
@@mr_huro от душы братан
@@davekup2525 не знаю
Заранее спасибо. Буду смотреть
Чел ты крут, спасибо тебе за труд)
У меня проблема с прыжком, вернее с ним всё правильно. Дело в Hero, я не могу переместить точку перемещения, когда подправляю коллайдер эта точка смещается. Ну и из-за этого по скрипту мой перс не может прыгать. Есть идеи? Помогите пожалуйста!!!
Вот решение частых ошибок
1) Не подсвечивается разными цветами например MonoBehaviour тогда надо зайти в юнити->edit->preferences->External Tools тут нажать на Open by file extension и выбрать visual studio community
2)6:30 Если не показывает систему координат то нажмите кнопку с стрелками под edit
3)Это конечно сложно назвать решением но смотрите внимательно и повторяйте в точь точь за ним прям очень
Простите за ошибки я не грамотный
Все мои ошибки указал, добра тебе
Отдуши
Бро, что делать, если когда я жму play земля пропадает, срочно
@@Sel1mka Box collider 2D добавить
В рай без очереди
Очень крутой ролик, ты молодец!
Хороший ролик, продолжай в том же духе!
Держите рабочий код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hero : MonoBehaviour
{
[SerializeField] private float speed = 3f; // скорость движения
[SerializeField] private int lives = 5; // скорость движения
[SerializeField] private float jumpForce = 15f; // сила прыжка
private bool isGrounded = false;
private Rigidbody2D rb;
private SpriteRenderer sprite;
private void Awake()
{
rb = GetComponent();
sprite = GetComponentInChildren();
}
private void FixedUpdate()
{
CheckGround();
}
private void Update()
{
if (Input.GetButton("Horizontal"))
Run();
if (isGrounded && Input.GetButtonDown("Jump"))
Jump();
}
private void Run()
{
Vector3 dir = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
sprite.flipX = dir.x < 0.0f;
}
private void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
}
private void CheckGround()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
isGrounded = collider.Length > 1;
}
}
Спасибо тебе!!!
Только можно вопрос, как коды сохранять?
огромное спасибо!
Перс не прыгает )=
@@sh1za452 +++
Отличный туториал спасибо, даже у такого чайника вроде меня получилось сделать это
Урок понравился, спасибо!
спасибоо вам большое ваше видео дало желание учитться
Альтернатива проверки состояния IsGrounded (Без использования Update):
private bool isGrounded = false; // Она уже должна быть создана выше, как в видео
private void OnCollisionStay2D(Collision2D collision)
{
isGrounded = true;
} //Вызывается когда есть прикосновение коллайдера объекта с другими коллайдерами
private void OnCollisionExit2D(Collision2D collision)
{
isGrounded = false;
} //Вызывается когда, происходит "выход из коллизии между объектами" (Есть противоположное OnCollisionEnter2D)
При такой проверке персонаж сможет прыгать при соприкосновениями со стенами
@@Koldevay можно сделать 2 коллайдера, один у ног в виде точки или прямой, но по краям чуть меньше чем основной коллайдер который по размеру всего персонажа
т.е делаем отдельный коллайдер для ног
Спасибо! Ваш код сильно помог, использую его)
Спасибо, чел, всё очень понятно.
Пересмотрел много роликов на ютабе, и Иммено Твой ролик, показался мне самым понятным.
(C# и Юнити для меня очень не понятны, ибо н когда не учил.
Знаю только RenPy🤷♂️)
как успехи?
Спасибо большое автору !!!
Спасибо большое очень крутой человек ты
То чувство когда ты обучаешь лучше чем платные курсы )
ага, тольк о не работает и скачет по окнам
видео топ, все понятно, но код... с ним беды, в конце лучше показывать весь
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] float speed = 3f;
[SerializeField] int lives = 5;
[SerializeField] float jumpForce = 15f;
bool Ground = false;
Rigidbody2D rb;
SpriteRenderer sprite;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetButton("Horizontal"))
Run();
if (Ground && Input.GetButton("Jump"))
Jump();
}
void Awake()
{
rb = GetComponent();
sprite = GetComponentInChildren();
}
void Run()
{
Vector3 dir = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
sprite.flipX = -dir.x < 0.0f;
}
void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
}
void Grounded()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 1f);
Ground = collider.Length > 1;
}
void FixedUpdate()
{
Grounded();
}
}
@@user-fu8mv5ru8v спасибо большое !!!
@@user-fu8mv5ru8v У тебя код с ошибками ,вот я исправил:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class hero : MonoBehaviour
{
[SerializeField] float speed = 3f;
[SerializeField] int lives = 5;
[SerializeField] float jumpForce = 15f;
bool Ground = false;
Rigidbody2D rb;
SpriteRenderer sprite;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetButton("Horizontal"))
Run();
if (Ground && Input.GetButton("Jump"))
Jump();
}
void Awake()
{
rb = GetComponent();
sprite = GetComponentInChildren();
}
void Run()
{
Vector3 dir = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
sprite.flipX = dir.x < 0.0f;
}
void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
}
void Grounded()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 1f);
Ground = collider.Length > 1;
}
void FixedUpdate()
{
Grounded();
}
}
@@Panzer-Division у меня по этому коду перс улетает
@@worldtechnology7616 поставь гравитацию больше и джамп поменьше
Добрый день товарищ, спасибо огромное за твои старания только начал смотреть, хотел спросить какой юнити именно нужен для создания(и я вообще чайник, что нужно почитать или ты всё на пальцах тут рассказываешь и можно не парится об доп литературе?)
бесплатного юнити с официального сайта вполне хватит (если я правильно вас понял), а доп. литература явно не нужна, автор очень понятно объясняет все моменты
Прыжок можно сделать легче через Mathf отслеживать есть ли под игроком блок
Вот скрипт примера:
if (Mathf.Abs(rb.velocity.y) < 0.005f && Input.GetButtonDown("Jump"))
Jump();
Огромное спасибо тебе!) Метод прышка из видео у меня тупо не работал
у меня тоже
@@dxmp
боже друг, да ты бог, спасибо огромное
Для тебя отдельное место в раю
Чувак, спасибо тебе большое, отличный урок!
###Еще один способ для тех, у кого не смещаются системы координат:
В Hierarchy тапаем на спрайт, выставляем в Инспекторе в полях координаты (Position) - Х, Y, Z всё на нули (это положение спрайта относительно основной директории Hero). Это позволит объединить системы координат спрайта и корневой директории Hero. Далее тапаем на сам файл спрайта (внизу в папке с материалами), затем в Инспекторе находим кнопочку "Sprite Editor". В открывшемся окне, в поле Pivot выбираем Bottom Center (Низ центр), дальше вверху в окне жмем Apply (применить). Закрываем окошко, подстраиваем коллайдер (Edit Collider) по границам спрайта - готово.
спасибо
делаю так как ты написал, обе оси стают по центру персонажа. когда сдвигаю персонажа вверх, то персонаж выходит за границу бокс коллайдера. если подгонять бокс коллайдер снова под персонажа, то ось тоже сдвигается. очень демотивирует, когда не можешь какие-то элементарные вещи сделать.
@@user-kw8ik4zc5p понимаю, у самого так же в случае неудач. Что сказать посоветовать? Метод тыка иногда лучший способ
у меня система координат двигается вместе с колайдером
+
Решил?
@@L4ke_221 решил проблему?
Там сверху есть кнопка center(под вкладкой window), на неё надо нажать, что бы Pivot было написано
@@xxxeee1256 решил чел сверху
хорошо, только над неймингом тебе надо поработать. Ты ж всё таки для новичков видео делаешь. Да и вообще, это культура программирования - хроший, понятный нейминг. Не ленись назвать переменную rigitBody )
Добрый вечер!
Расказал очень хорошо, есть один вопрос, где вы скачали слои для background?
в описании там линк на облако, яндекс или гугл драйв
Cделал всё то в точь как в видео, но вмест отого чтобы не делать двойной прыжок, герой просто отказывается прыгать,
версия unity 2020.2.7f1
Урок неплохой, некоторые вещи все равно пришлось погуглить, но хотелось бы более подробного объяснения кода - хотя бы за что отвечает каждый класс. Хотя в целом я все интуитивно поняла т.к. пишу на Java, но все равно хотелось бы побольше комментариев потому что код - это основная часть игры и новеньким может быть несовсем все понятно ❤
КЛАСС! ТЫ ТОП!!! Очень понятно, интересно, познавательно!
всё круто! удачи в развитии канала
Можешь снять видео как ты сам пишешь этот код , заранее спасибо)
В топ этот коммент!
На 3:47 после вкладки 2д объект, спрайтс выходит выбор типо Square, Circle, Capsule и так далее. Что выбрать, когда надо делать платформу? Заранее спасибо
Square выбирай, там изменить можно (если я правильно понимаю)
@@user-mg6te1kx1v Спасибо, а вообще всё таки какую версию новичку лучше установить?
А когда делаешь персонажа что надо выбирать?
Очень хорошее описание. Всё работает. НО! На некоторых кубиках не прыгает. Надо уйти в сторону почему-то
Автор огромное спасибо что не оставил ссылки на скрпиты,именно благодаря этому я могу писать его)
@@Kussia4.0 и что?Я не чекаю остальные комменты
Спасибо за видео! А как исправить то, что персонаж на прыжке просто выпрыгивает за экран? Умножение на jumpForce в методе Jump() вообще убрала, но все равно выпрыгивает. И невозможность прыгать, когда герой в воздухе, тоже не работает. Он продолжает прыгать
у меня ваабще не пригает)
Такая же проблема, получилось решить, изменив массу Hero в настройках RigitBoby 2D
@@user-tu1cc2go7r спасибо!)
только сейчас понял как решить. Он из периода апдейд убрал if с прыжком.
@@gtasss5282 он не убрал, он добавил isGrounded &&
Автору спасибо за видео. Информация для тех, у кого проблемы с установлением системы координат к ногам. Под главной панелью управления Unity (у меня прям под Window) есть кнопки "Center" и "Local". При нажатии на них их значения меняются на "Pivot" и "Global". Меняйте значения и системы координат у родительского и дочернего элементов будут разные. Ну и конечный код, а то многие просили. Только не забывайте менять название класса под имя своего скрипта.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerCTRL : MonoBehaviour
{
[SerializeField] private float speed = 3f;
[SerializeField] private int lives = 5;
[SerializeField] private float jumpForce = 15f;
private bool isGrounded = false;
private Rigidbody2D rb;
private SpriteRenderer sprite;
private void Awake()
{
rb = GetComponent();
sprite = GetComponentInChildren();
}
private void FixedUpdate()
{
CheckGround();
}
private void Update()
{
if (Input.GetButton("Horizontal"))
Run();
if (isGrounded && Input.GetButtonDown("Jump"))
Jump();
}
private void Run()
{
Vector3 dir = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
sprite.flipX = dir.x < 0.0f;
}
private void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
}
private void CheckGround()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
isGrounded = collider.Length > 1;
}
}
Спасибо! Голову ломал, не мог систему координат сделать правильную, Global->Pivot решило проблему.
Ты просто мой спаситель, благодарю!)
@@vitaliibaryshev7269 Обращайтесь
@@zboral10 Обращайтесь
Ты топ!! я несклько дней ломал голову с кодом, всё выдавал ошибки, но ты меня спас! РЕСПЕКТ!!!!
Подскажите, в какой программе вы писали скрипты, а то у меня в Ворде постоянно открывает, как сменить на эту программу?
Можете подсказать, почему при прыжке персонаж вылетает на разную высоту(иногда достает до платформы, а иногда нет)?
нужели кто то подробно обьяснил про скрипты в Юнити, а не тупо писал код на скорости х1,75 , спасибо за видео
ruclips.net/video/CAPVBTKk3Ww/видео.html
Привет, я тут у тебя новенький и мне очень нравятся твои виде. Так держать!!!
Немного начал практиковаться и столкнулся с такими проблемами:
1. Не могу сдвинуть оси к ногам персонажа(раз 10 повторил за тобой не получается) оси на том же месте остаются.
2. Я так понимаю , что visual studio меня не понимает. Например: [SerializeField], Rigidbody2D, SpriteRenderer эти слова белые(не как у тебя зеленые) и на них агрится unity (может я или не правильно установил или не подключил какую-то функцию или библиотеку?)
Привет.
1) С этим пока неизвестно. Почему-то только в последнее время начали с этим люди сталкиваться. Раньше вроде всë нормально было
2) Установи подсказки от Unity для Visual Studio
Спасибо, большое. Что самое интересное, вчера сдвигать оси получалось , а сегодня уже 30мин сижу с этим... Так теперь у меня кривые прыжки будут?
@@GAMEKING-vp9ye Можно попробовать переделать систему отслеживания положения игрока. Через коллизию, например. Лучше посмотреть отдельные видео на эту тему
@@atlassdev2481 Спасибо большое, еще раз. Жду нового видео)
Я конечно получил небольшой навык благодаря тебе, но вот конкретные коды, написанные тобой, можно использовать Visual Studio 2019? Просто сейчас большинство разработчиков пишут скрипты в VS Code. Благодарю за четкое объяснение)
Жду ответ.
не принципиально где писать код. Отличие вз от взк в том, что на взк есть расширения, которые пригодятся для более комфортного процесса написания кода(например подсветка или шаблоны)
@@DjZalypa я уже узнал, что они особо не отличаются в написании. Но всё же спасибо за инфу
Ты человеще, спасибо тебе, помог!!!!!
дай код пж
@@user-kc7kg9om3x он не работает
Ребят, подскажите пожалуйста, на 6:16 он настраивает точку координат, я также выставляю её в ноги персонажу, но когда начинаю настраивать BoxCollider2D
Эта точка координат сбивается, и становиться обратно в центре BoxCollider. Что нужно сделать чтоб и BoxCollider был нормальным, и точка координат персонажа тоже была в ногах?
Проверь куда установил BoxCollider2D, я тоже не мог выкупить, а потом как оказалось BoxCollider2D был на спрайте, проверь точно ли установлен на ГеймОбжекте
@@illiahroshev9546 Спасибо))
Если ты ещё читаешь комментарии, может скажешь, в чем проблема строки
if (isGrounded && Input.GetButtonDown("Jump")) Jump();
Ввожу так, как она есть и персонаж вообще перестаёт прыгать. Если убрать запись isGrounded &&, то снова идут множественные прыжки.
Все, я нашёл косяк. Проблема была не тут. У меня по какой то причине ось координат никак не желает перемещаться к ногам. Но я нашёл решение. Там, где мы прописывали массив коллайдеров, я указал 0.9f вместо 0.3f и все заработало. Баг был в том, что программа думала, что персонаж всегда в воздухе
@@mistermind174 Спасибо тебе огромное!)
@@mistermind174 Здесь нужно было решать проблему правильным смещением системы координат, чтобы это получилось сделать нужно чтобы опция "Pivot" была включена вместо "Center"
+++
@@vitaliibaryshev7269 о спасиба вам , помогло решыть проблему)
лайк за то что есть гугл диск и все понятно
Большое спасибо!
Помогите пожалуйста.
Систему координат у персонажа передвинуть вниз невозможно. То есть когда я её передвигаю вниз, то вместе с ним у меня передвигается коллайдер. А потом я коллайдер передвигаю на персонажа, то потом координаты снова ставятся в середину. И так бесконечно ._. Из-за этого у меня в конце видео не работает прыжок вообще, а просто ходит персонаж.
тоже самое.
ты смог исправить?
@@Alex-tq5fg Да, смогла
@@florestina864 Классно, но как?
Аналогичная ситуация
@@Yes.Im.Mr.Anderson дай свой вк, туда скину)
почему у меня [SerializeField] Rigidbody2D SpriteRenderer не выделяется голубым цветом, как показано на видео? У меня просто белый шрифт
хоть ты писал этот коментарий 2 года назад но, это из-за того что разные версии и темы вижуал студио код
После метода сокращения прыжков до 1, персонаж вовсе перестал прыгать. Не подскажите в чем проблема?
Что делать, если после создания скрипта ничего не открывается? Код открывается только через обычный документ Майнкрасофт, с непонятными символами. Нужно установить программу для редактирования кода? Или что?
Странно что тут так мало просмотров, очень даже годный урок)
Правда у меня вопрос возик, зачем для персонажа делать отдельную папку, если все параметры можно на него ставить, так ведь гораздо удобнее
чтоб вписать isGround, там проблема возникнет.
Что делать если смешается система координат у челика?
Для prodвижения творчества!
Будем посмотреть
Друзья, вопрос такой. Почему при сдвиге системы координат персонажа, точно так же, как указано в видео, стрелки направления координат х/y двигаются вместе с персонажем и выходят за рамки зелёного квадрата. Т.е. нажимаю на new sprite, затем двигаю персонажа вверх до того места, где находилась ось, после нажимная на Hero, оси находятся не внутри зелёного квадрата, а над ним.
Смогли исправить?
@@user-ze1dl5bk7x у меня почти такая же проблема,автор забыл видимо пропустил что то показать,потому что делаю все как на видео,а не получается
такая же проблема, повторяю всё как на видео, но бокс коллайдер смещается вниз из-за этого. когда подгоняю его снова по персонажа, то ось тоже сдвигается. бесит, ппц.
объект персонажа с его хитбоксом (зеленым квадратом) - это одно, а спрайт, картинка которую ты двигаешь - это другое. если нужно переместить зеленый квадрат то выбирай в панели объектов самого персонажа