Как сделать игру на Unity в 2д с нуля #4 | Очки и простое главное меню

  Рет қаралды 14,451

Hornas - game developer

Hornas - game developer

2 жыл бұрын

Чекни описание
Там много полезностей (в том числе и исходный проект)😉
Начинаю курс по Unity2d с нуля, где почти подробно рассказываю как и что происходит.
На этом курсе мы от полного недопонимания дойдем до готовой версии Flappy bird.
Полезные ссылки:
-
Boosty: boosty.to/hornas (там исходники туториалов)
Дискорд сервер: / discord
Телеграмм канал: t.me/+M6DHf27Q1-tiYTk6
JetBrains Rider - www.jetbrains.com/ru-ru/rider...
Unity - unity3d.com/get-unity/download
Графика для Flappy bird - gcup.ru/load/assets/tilesets/...
Шрифт Flappy bird - fonts-online.ru/fonts/flappy-...
Моя игра ("Furaito"): hornas.itch.io/furaito
-
СОЦСЕТИ:
шифруюсь.
Ключевый слова:
Юнити, юнити, юнити2д, юнити 2д, Unity2d, Unity, юнити с нуля,
юнити с полного нуля, как сделать игру, как создать игру, Gamedev,
gamedev, разработка игр, 2д, Rider, JetBrains Rider, как сделать игру быстро,
flappy bird на юнити, flappy bird с нуля, как сделать игру с полнейшего нуля
flappy bird на юнити, flappy bird с нуля, как сделать игру с полнейшего нуля

Пікірлер: 101
@user-xh8dk4ov7e
@user-xh8dk4ov7e Жыл бұрын
Лично для меня этот урок оказался довольно сложным, пока еще возникают трудности с понимаем public static ScoreManager Intence {get; set;} и public static GameManager instance;, но могу сказать что это единственные трудности, все остально предельно понятно. Отличные туториалы!
@phaetonyt9528
@phaetonyt9528 29 күн бұрын
Урок был очень не простой но я справился! Спасибо тебе огромное! -)
@RiseLiveAgain
@RiseLiveAgain 2 ай бұрын
Assets\Scripts\Pipe.cs(21,26): error CS0117: 'ScoreManager' does not contain a definition for 'Instance' что делать
@-fan-9787
@-fan-9787 7 ай бұрын
Если на моменте 9:50 вы застопоролись. И не можете понять, почему не находит этот TextMeshProUGUI. То вот ответ: у него программа сама подключила нужную библиотеку(using TMPro), когда он выбрал этот тип переменной.
@darknside
@darknside 2 жыл бұрын
Крутой урок
@Milash001
@Milash001 2 жыл бұрын
Лайк и коммент для продвижения канала!
@h0rNAs
@h0rNAs 2 жыл бұрын
Спасибо огромное!
@lux5020
@lux5020 Жыл бұрын
Бро , реально очень хорошие видео , ты достоин гораздо большего . У тебя есть игры в стиме или на телефон?
@h0rNAs
@h0rNAs Жыл бұрын
Нету :(
@lux5020
@lux5020 Жыл бұрын
@@h0rNAs А почему не выкладываешь и можно ли с тобой пообщаться в дс?
@cybergoosertv
@cybergoosertv Жыл бұрын
Привет! Нужна помощь! когда кликаю в игре на мышку, то кубик улетает вверх за пределы возможного(да, даже через потолок). При нажатии на пробел все нормально. В Чем может быть проблема? очень надеюсь на вашу отзывчивость) пы сы: Ролики прекрасные, автору больших успехов в развитии себя и канала)
@foonyresso9988
@foonyresso9988 Жыл бұрын
Стоит немного больше шрифт в коде сделать, плохо видно и я целый час не мог понять где ошибку сделал xD
@h0rNAs
@h0rNAs Жыл бұрын
Учту в следующей раз
@Andrei_Naxyro
@Andrei_Naxyro Жыл бұрын
Assets\Scripts\Pipe.cs(18,26): error CS0117: 'ScoreManager' does not contain a definition for 'Instance' Помогите пж
@NickSovaMinecraftshorts
@NickSovaMinecraftshorts 2 жыл бұрын
У меня вопрос. Я хочу сделать так, чтобы игрок появился в невидимой зоне, где только он невидимый, а другие объекты оставались видны. А когда объект выходит из зоны, он становился обратно видимым. То есть зона, это как бы поверхность, которая его скрывает. Долго не могу найти ответ
@NickSovaMinecraftshorts
@NickSovaMinecraftshorts 2 жыл бұрын
Думаю это как то связано с шейдерами
@h0rNAs
@h0rNAs 2 жыл бұрын
Ну смотри. Если я правильно понял и ты имеешь ввиду движок юнити то есть два варианта Первый: это попробовать создать объект который бы закрывал игрока.(подойдет даже не для юнити) Второй: это почитать документацию по SpriteMask yandex.ru/search/?text=sprite+mask+unity&lr=11139&clid=2353474-306&win=453&src=suggest_T вроде он такое как раз и позволяет сделать в 2д.
@NickSovaMinecraftshorts
@NickSovaMinecraftshorts 2 жыл бұрын
@@h0rNAs спасибо, попробую
@NickSovaMinecraftshorts
@NickSovaMinecraftshorts 2 жыл бұрын
@@h0rNAs Спасибо, помог способ с маской Rext mask 2D
@user-ih9ii1gm6v
@user-ih9ii1gm6v Жыл бұрын
Добрый вечер, вопрос на засыпку. Если проиграть и вернуться в меню, то после нажатия кнопки "Play" игра не двигается и кубик просто зависает на месте, как и вся сцена. В чём может быть проблема?
@user-fy7wr2lp1v
@user-fy7wr2lp1v Жыл бұрын
если я правильно понял, то у тебя может зависать из за неправильного указания в коде, что при игре у тебя скорость физики = 0, т. е Time.timeScale = 0;
@ifoxp6987
@ifoxp6987 Жыл бұрын
Я делаю свою игру и возникла проблема что я персонажем могу пару раз касатся колайдера тригера и он несколько раз получает очки. Кокой командой можно отключить колайдер к которому прикоснулись?
@ifoxp6987
@ifoxp6987 Жыл бұрын
Уже решил. Если кому то интересно то в коде Pipe я добавил public GameObject Collider; и там где if(other.TryGetComponent(out _)) добавил Collider.GetComponent().enabled = false;
@yaroslavglebov9918
@yaroslavglebov9918 Жыл бұрын
си шарп трудноватый язык, но мне он нравится. Раньше я пробовал питон
@h0rNAs
@h0rNAs Жыл бұрын
Это ты ещё c++ не пробовал🙂
@o_p4vl0
@o_p4vl0 Жыл бұрын
Ничем он не трудный. Я в школе паскаль изучал, а после скитался по разным яп, но суть везде одна и та же.
@user-xh8dk4ov7e
@user-xh8dk4ov7e Жыл бұрын
Есть вопрос, я пишу код в Visual Studio Code и к сожелению не могу найти модуль который отвечал бы за авто дополенение текста как в Rider, как можно решить данную проблему?
@user-Volad
@user-Volad Жыл бұрын
Это в юнити быстро настраивается edit - preferences - ExternalTool там уже выбираешь студию во вкладке ExternalToolScriptEditor
@solevoy1167
@solevoy1167 10 ай бұрын
после этих всех манипуляций перестал двигаться персонаж, код проверил, rigidbody2d стоит, код тоже. что с этим делать?
@user-kk4cf4mm6n
@user-kk4cf4mm6n Ай бұрын
помогите пожалуйста Assets\Scripts\Pipe.cs(17,26): error CS0122: 'ScoreManager.Instance' is inaccessible due to its protection level мне пишет такую проблему хотя всё сделал как на видео а ошибку выдаёт
@o_p4vl0
@o_p4vl0 Жыл бұрын
Гайд достаточно интересный, но есть пара минусов: 1. Не точные определения вещей в самом шарпе - тот же оператор this. Он не означает ничего собственного, а только то, что мы обращаемся к полю данного класса, и применяется обычно если в полях перегрузки имеется схожее имя поля. 2. Очень неприятна отговорка - есть другой способ, но я сделаю так. 3. В некоторых моментах вообще без пояснения, что приходится самим додумывать - это встроенный метод в юнити, или ты сам придумал это. В остальном неплохой гайд для начинающих, но точно не для тех, кто не понимает си шарп.
@o_p4vl0
@o_p4vl0 Жыл бұрын
Ах да, если что, можно было и объяснить, что такое статик. Если кратко - этот модификатор поля или объекта показывает, что его можно использовать без обращению к экземпляру (объекту) класса.
@h0rNAs
@h0rNAs Жыл бұрын
Определение из инета и я могу скопировать🙂
@o_p4vl0
@o_p4vl0 Жыл бұрын
@@h0rNAs дело не в инете и не в копирайте - а в том, что порой неясно объясняются моменты в коде и в проекте
@aspeend2034
@aspeend2034 10 ай бұрын
А если у меня не добавляется текст в скрипт в проблема?
@maxlist9380
@maxlist9380 Жыл бұрын
помогите у меня на части с get; set; выдает ошибку хотя написал также
@p4nda413
@p4nda413 Жыл бұрын
я так и не понял, зачем нужен Instance = this? или в каких случаях это нужно использовать, можешь пж объяснить
@h0rNAs
@h0rNAs Жыл бұрын
Мы обращаемся к переменной Instance из других скриптов И если мы не зададим туда что то, то мы будем обращаться к пустому месту
@p4nda413
@p4nda413 Жыл бұрын
@@h0rNAs Спасибо, теперь понял
@lump_button335
@lump_button335 2 жыл бұрын
у меня ошибку выдаёт The type or namespace name 'TextMeshProUGUI' could not be found (are you missing a using directive or an assembly reference?)
@lump_button335
@lump_button335 2 жыл бұрын
библиотека юнити подключена
@lump_button335
@lump_button335 2 жыл бұрын
using System.Collections; using System.Collections.Generic; using UnityEngine; public class scoretrigger : MonoBehaviour { [SerializeField] private TextMeshProUGUI scoretext; private int score; private void Start() { set_score(0); } public void set_score(int score) { this.score+=score; scoretext.Text = "score"+this.score; } private void OnTriggerEnter2D(Collider2D other) { set_score(1); } } вот код
@lump_button335
@lump_button335 2 жыл бұрын
помогите пожалуйста
@lump_button335
@lump_button335 2 жыл бұрын
я пропустил библиотеку
@h0rNAs
@h0rNAs 2 жыл бұрын
Если ты еще не разобрался в своем вопросе, то ты просто не дописал using using TMPro;
@maxymets2607
@maxymets2607 3 ай бұрын
Lol я вчера цель|й час не мог понять почему у меня ошибка и оказалось я забил поставить () в Lose
@user-kl8vf6hq1j
@user-kl8vf6hq1j 6 ай бұрын
Уже какой день не могу понять где моя ошибка юнити выдает вот это Assets\Script\Pipe.cs(15,35): error CS0246: The type or namespace name 'Player' could not be found (are you missing a using directive or an assembly reference?) Несколько раз заново переписывал нечего не меняется , помогите пж
@121181dima
@121181dima 4 ай бұрын
В первых уроках создается публичный скрипт/класс "Player". Если делали все правильно, то такой ошибки быть не должно. Она означает, что не находит такого класса. Возможно вы переименовали класс "Player", либо изначально создали скрипт с другим именем, а потом имя скрипта изменили на "Player", а имя класса осталось старое. Посмотрите как называется класс в скрипте Player и именно это название впишите в скрипте "Pipe" в строку "if (other.TryGetComponent(out _))" вместо "Player".
@dolhal5817
@dolhal5817 Жыл бұрын
Помогите пожалуйста! У меня не работает счётчик Score. Как его исправить?
@sashkent3825
@sashkent3825 10 ай бұрын
Так ты же ни ошибки не прислал, ничего буквально. В таком случае только стирать код и смотреть заново.
@user-gk2qo8um3v
@user-gk2qo8um3v 7 ай бұрын
Что делать, если нажимаю сначала на играть, потом проигрываю, выхожу в меню, снова нажимаю старт и игра останавливается, просто ничего не происходит, кубик висит в воздухе?
@Python-room
@Python-room 7 ай бұрын
Time.timeScale менял обратно на 1?
@doggy4553
@doggy4553 Жыл бұрын
Привет, у тебя классные уроки, но я столкнулся с проблемой "Не удалось найти тип или имя пространства имен 'Player' (вам не хватает директивы using или ссылки на сборку?)" можешь подсказать что я не так делаю?
@doggy4553
@doggy4553 Жыл бұрын
в скрипте pipe на 15 строке,тайминг 17:36
@user-ov2le2yk5q
@user-ov2le2yk5q Жыл бұрын
Если еще актуально то вот решение) У него Скрипт с движение персонажа называется "Player" , вот он его там и указал ты видимо этот же скрипт назвал по другому либо же допустил ошибку Проверь как у тебя называется данный скрипт и запиши вместо "Player" название твоего скрипта
@nicoyazawa1
@nicoyazawa1 Жыл бұрын
@@user-ov2le2yk5q от души, сам до этого не догадался
@1-politicheskiy
@1-politicheskiy Жыл бұрын
@@user-ov2le2yk5q ляяяя от души я мучился долго
@dwecayy
@dwecayy Жыл бұрын
что делать если я пишу код в vs code и у меня не находит TextMeshProUgui выдает ошибку помогите
@h0rNAs
@h0rNAs Жыл бұрын
Библиотеку "TMP" в юзингах допиши сверху в скрипте
@chocklet4264
@chocklet4264 Жыл бұрын
Почему у меня пишет что "ScoreManager.SetScore(int)" недоступен из-за его уровня защиты. Как это исправить, помогите пожалуйста
@maxymets2607
@maxymets2607 3 ай бұрын
Попробуй сменить с private void SetScore(int score) на public void SetScore(int score) и тогда все будет норм
@ramkillramkos2886
@ramkillramkos2886 Жыл бұрын
У меня проблема. Кнопка Maim menu всë равно действует как рестарт. Проверил весь гайд, всë савподает. Как решить?
@sashkent3825
@sashkent3825 10 ай бұрын
Видимо не всё проверил, проверяй тщательнее. Сделал всё по туториалу - всё работает.
@_himshik_7679
@_himshik_7679 Жыл бұрын
У меня игрок пролетает через трубы, но при этом счётчик не появляется. Выдаёт ошибку: NullReferenceException: Object reference not set to an instance of an object ScoreManager.SetScore (System.Int32 score) (at Assets/scripts/ScoreManager.cs:21) Pipe.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/scripts/Pipe.cs:18). Вот код в SceneManager: using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using UnityEngine.SceneManagement; public class ScoreManager : MonoBehaviour { public static ScoreManager Instance; [SerializeField] private TextMeshProUGUI ScoreText; private int score; private void Start() { Instance = this; } public void SetScore(int score) { this.score += score; ScoreText.text = "Score: " + this.score; } } И ещё код из Pipe: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Pipe : MonoBehaviour { public float speed; private void Update() { transform.Translate(Vector2.left * speed * Time.deltaTime); } private void OnTriggerEnter2D(Collider2D other) { if (other.TryGetComponent(out player player)) { ScoreManager.Instance.SetScore(1); } } } Помогите пожалуйста!
@GandonEbuchiy
@GandonEbuchiy Жыл бұрын
Та же проблема
@GandonEbuchiy
@GandonEbuchiy Жыл бұрын
this.score += Score; напиши так, то есть после = поставь большую букву S, возможная причина не работающего счетчика
@GandonEbuchiy
@GandonEbuchiy Жыл бұрын
Вообще в целом, возможно, код заработает, если заменить заглавные буквы в местах где они нужны
@YarOk_10
@YarOk_10 Жыл бұрын
у меня тоже так, я не могу понять что не так, помогите пж
@user-to5el1yk1s
@user-to5el1yk1s 10 ай бұрын
У тебя плейер в 2 местах не правильно написан, не уверен что изза этого но попробуй. вместо, if (other.TryGetComponent(out player player)) напиши if (other.TryGetComponent(out Player player)) Это разные значения... Вот у меня не пойму что не так, вечь код сверял. И скор пробовал с большой как тут советали, без шансов... Автор ответь же, люди 7 месяцев ответа ждут... Моя ошибка такая же но одна, NullReferenceException: Object reference not set to an instance of an object Pipes.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Pipes.cs:17) Вот код Скрипта Пайпс, Имеется ввиду строчка 17 т.е .... ScoreManager.Instance.SetScore(1); using UnityEngine; public class Pipes : MonoBehaviour { public float speed; private void Update() { transform.Translate(Vector2.left * (speed * Time.deltaTime)); } private void OnTriggerEnter2D(Collider2D other) { if (other.TryGetComponent(out Player player)) { ScoreManager.Instance.SetScore(1); } } }
@iliyaqq
@iliyaqq Жыл бұрын
Привет! не мог бы подсказать как сделать чтобы можно было скачать мою игру?
@h0rNAs
@h0rNAs Жыл бұрын
До конца туториала до смотри Там будет показано как ее собрать А чтобы выложить и поделится рекомендую itch io
@ycuna1
@ycuna1 Жыл бұрын
NullReferenceException: Object reference not set to an instance of an object Pipe.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Pipe.cs:18) Помогите пж, такую ошибку выдает
@h0rNAs
@h0rNAs Жыл бұрын
Скинь 18 строчку из скрипта pipe
@ycuna1
@ycuna1 Жыл бұрын
@@h0rNAs ScoreManager.Instance.SetScore(1);
@ycuna1
@ycuna1 Жыл бұрын
@@h0rNAs помоги пж
@h0rNAs
@h0rNAs Жыл бұрын
Скинь полностью код метода
@ycuna1
@ycuna1 Жыл бұрын
@@h0rNAs using System; using UnityEngine; public class Pipe : MonoBehaviour { public float speed; private void Update() { transform.Translate(Vector2.left * speed * Time.deltaTime); } private void OnTriggerEnter2D(Collider2D other) { if (other.TryGetComponent(out Player player)) { ScoreManager.Instance.SetScore(1); } } }
@single-nj4db
@single-nj4db Жыл бұрын
Я конечно все понимаю, но я не могу найти на клавиатуре две вертикальные палочки. Мне самому смешно с этого. Помогите пожалуйста
@sashkent3825
@sashkent3825 10 ай бұрын
Shift + \ на английской раскладке, если актуально.
@iliyaqq
@iliyaqq Жыл бұрын
ScoreManager не работает:/ сделал всё правильно просто в трубах когда прохожу просто не могу пройти и ничего не прибавляется
@iliyaqq
@iliyaqq Жыл бұрын
это я решил! но другая проблема когда прошёл через трубу выдало ошибкy! NullReferenceException:Object reference not set to an instance of an object Pipe.OnTriggerEnter2D (Unity.Engine.Collider2D other) (at Assets/Scripts/Pipe.cs:18)
@user-je8km1jc4m
@user-je8km1jc4m Жыл бұрын
Подскажи пожалуйста, как решил проблему
@h0rNAs
@h0rNAs Жыл бұрын
Я думаю что галочка isTrigger на колайдере у объекта трубы не стояла
@iliyaqq
@iliyaqq Жыл бұрын
@@user-je8km1jc4m я просто переделал бокс коллайдер вроде, уже не помню.
@user-to5el1yk1s
@user-to5el1yk1s 10 ай бұрын
@@h0rNAs Стоит галочка но такая же проблема NullReferenceException: Object reference not set to an instance of an object Pipes.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Pipes.cs:16)
@user-pd5ix8ef7i
@user-pd5ix8ef7i Жыл бұрын
Что делать, когда я нажимаю play то сцена не миняеться 4:54
@phaetonyt9528
@phaetonyt9528 29 күн бұрын
У меня так же, не загружается все сделал так же 1 в 1
@phaetonyt9528
@phaetonyt9528 29 күн бұрын
Разобрался, у тебя первая сцена где сама игра пустая))) сцена эта в основной папке Assets я там ее нашел, переставил и все заработало!
@user-xx8ip3vp7s
@user-xx8ip3vp7s Жыл бұрын
Кайф у меня player сломался он не прыгает не падает не бьётся об стенки
@h0rNAs
@h0rNAs Жыл бұрын
rigidbody добавил?
@user-xx8ip3vp7s
@user-xx8ip3vp7s Жыл бұрын
@@h0rNAs да
@h0rNAs
@h0rNAs Жыл бұрын
Скрипт добавил на объект? Если да, то перепроверь код
@user-to5el1yk1s
@user-to5el1yk1s 10 ай бұрын
Автор на вопросы вообще не отвечают. Люди год ответа ждут, много у кого одна и та же ошибка, как и у меня, и ноль внимания ((( NullReferenceException: Object reference not set to an instance of an object Pipes.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Pipes.cs:17) Вот код Скрипта Пайпс, Имеется ввиду строчка 17 т.е .... ScoreManager.Instance.SetScore(1); using UnityEngine; public class Pipes : MonoBehaviour { public float speed; private void Update() { transform.Translate(Vector2.left * (speed * Time.deltaTime)); } private void OnTriggerEnter2D(Collider2D other) { if (other.TryGetComponent(out Player player)) { ScoreManager.Instance.SetScore(1); } } }
@user-to5el1yk1s
@user-to5el1yk1s 10 ай бұрын
очень жаль изза этого бросать проект(((
@indahell666
@indahell666 8 ай бұрын
Друг я понял в чем проблема, тоже так было, я забыл текст перекинуть в гейм менеджер, посмотри , перекинул ли ты@@user-to5el1yk1s
Как сделать игру на Unity в 2д с нуля #5 | Графика
20:43
Hornas - разработчик игр
Рет қаралды 10 М.
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 30 МЛН
ROCK PAPER SCISSOR! (55 MLN SUBS!) feat @PANDAGIRLOFFICIAL #shorts
00:31
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 1,9 МЛН
Homemade Professional Spy Trick To Unlock A Phone 🔍
00:55
Crafty Champions
Рет қаралды 48 МЛН
Software that makes your OS look like OTHER. Windows Customization #2
30:27
Создаю платформер с нуля на Unity (Corgi Engine). Урок #1 by Artalasky
26:03
ARTALASKY CG - Как создать игру
Рет қаралды 91 М.
Как сделать игру на Unity в 2д с нуля #1 | Основы и персонаж
26:24
Hornas - разработчик игр
Рет қаралды 171 М.
Strange Windows-based builds
20:55
Daniel Myslivets
Рет қаралды 150 М.
ЛАРИ МЕН ЛОРИДЫ ЗОРҒА АЛДЫМ!
18:40
Асхат Gaming
Рет қаралды 37 М.
Реальнее чем в жизни ( Bodycam )
14:10
JOHAN
Рет қаралды 758 М.
ҚОЙДЫ ТОНАУДЫҢ 5 ТӘСІЛІ
14:19
DENRON
Рет қаралды 20 М.