Как сделать платформер на Unity #2 | Анимации и слежение камеры
HTML-код
- Опубликовано: 13 янв 2021
- В этом видео мы продолжаем создавать платформер на движке Unity.
Добавим анимации и слежение камеры за игроком.
Скачать пак графики для платформера:
Яндекс. Диск - yadi.sk/d/oDaUkuSYI3m0Ew
Гугл Диск - drive.google.com/file/d/1zARN...
Как сделать платформер на Unity #2 | Анимации и слежение камеры
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 платформер, unity, unity3d, android helper, tutorial, programming, c#, game dev, юнити, туториал, движение камеры в unity, движение камеры за персонажем unity 2d, как сделать движение камеры за персонажем в unity, плавное движение камеры unity, camera follow 2d, двигаем камеру за персонажем в юнити, двигаем камеру за игроком в unityпрограммирование, development, разработка игр, animation
Почти никого не остается на Ютубе из тех ребят, которые начинали снимать на эту тематику. Держись, главное не бросай **
Спасибо монтажору за обрезки скриптов просто 10\10
Сарказм?
++, было бы намного удобнее вставлять полный экран в уроках, а не пол экрана, и в не наше поле зрение кликать куда то, либо что то писать
@@imya2288 я могу скинуть готовый скрипт, полностью рабочий
@@user-tm1ui2pe6d если можно
@@user-tm1ui2pe6d и мне если можно
Я же не одна здесь, чтобы сделать игру для защиты проекта?
+
только мне для школьного проекта надо. Можешь подсказать, что делать если работает только анимация покоя?
ХВХВХВХ не думала, что ещё есть такие
@@ma_liberta ... ну я хпэхажахаэха да я лох
Я лабу в универе получил сделать платформер... так что вы не одна)
Спасибо что научил делать анимации!❤
Где? Даже не показал
Ребята код для камеры:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField] private Transform player;
private Vector3 pos;
private void Awake()
{
if (!player)
{
player = FindObjectOfType().transform;
}
}
private void Update()
{
pos = player.position;
pos.z = -10f;
transform.position = Vector3.Lerp(transform.position, pos, Time.deltaTime);
}
}
PS: Скрипт надо прикрепить к камере и дать обьекту тег Player, а то у некоторых Hero не распознает.
Что делать если скрипт не работает? Всё сделал, но место игрока канвас двигается
@@catssteam возможно не туда прикрепили скрипт
Крч: player = FindObjectOfType().transform;
Спасибо братан от души!
все правильно но камера не двигается
всё получилось, видосу лайк, переходим к 3-ей части
Не обижайся, но по твоим видео очень хорошо учиться, ведь ты в некоторых местах так говнокодишь, а в некоторых не рассказываешь что и как, что человек начинает сам искать информацию, и узнает гораздо больше, чем в любом уроке
Это так, я тоже начал изучать Unity. И я тупой был вообще, не понимал, почему так, вроде язык C++ и С# освоил, студентам их програмки решаю, как семечки щелкаю. А оказывается что в Unity надо запоминать все классы, методы и т.д.
Когда несколько раз одно и тоже сделаешь, тогда начинаешь делать все быстрее, а потом уже до такого автоматизма доходит, что вот то что тут показывают в уроках можно за пару минут сделать. И вот я смотрел этот урок и чувствовал себя ничтожеством потому что делаю все аналогично, а ничего не работает. В итоге я за 2 дня только разобрался где я наошибался, зато я хорошо запомнил и смог в дальнейшем с легкостью видеть где фиксить баги. А что касается его кода, не так уж и говнокодит). Можно написать красивее, но в принципе работает же у него все. А для новичков неважно как код написан, с опытом все учаться писать красивее. Это как разговаривать на английском учиться, сначало говоришь как в детском саду, а потом с опытом разговариваешь красиво). Но вот эти обрезания, мне тоже не нравятся если честно, смотришь смотришь, а потом опа, и уже все готово (ну вы там в папочку загляните там файлик появился), а я черт подери куда-то случайно запихнул первую анимацию даже не заметив, и 2 часа думал что не так. Мне то как новичку откуда было знать что в Unity аниматор появляется том месте. Короче бред) Зато, как ты правильно сказал, заставляет разбираться самому))
@@Samurai-yh8og получается видимо зря я сделал всё так как в видео, и не было никаких ошибок 🤔
подскажите как добавить уже созданные анимации?
У меня они есть просто не сохранились в редакторе...
@@Samurai-yh8og
У меня все получилось, хочу объяснить частые ошибки:
1. Камера не работает:
Во-первых, вам нужно создать отдельный скрипт-файл(как Hero), и в нем писать код, который в этом видео. Дальше вы добавляете этот скрипт к Main Camera(чтобы ее было видно в панели с компонентами), потом нажмите маленькую стрелочку, чтобы развернуть и там будет всего два пункта(Script, но его нельзя изменить, и player). В пункте Player нажмите на круг в круге(правее всего) и выберете Hero. Если код у вас, как на видео, то должно сработать.
2. Не работают анимации:
Проверьте, как вы сохранили файлы(большая буква или маленькая, как называется). У меня файлы с большой буквы, поэтому код Hero выглядит так: 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 = 7f;
private bool isGrounded = false;
private Rigidbody2D rb;
private Animator anim;
private SpriteRenderer sprite;
private States State
{
get { return (States)anim.GetInteger("state"); }
set { anim.SetInteger("state", (int)value); }
}
private void Awake()
{
rb = GetComponent();
anim = GetComponent();
sprite = GetComponentInChildren();
}
private void Run()
{
if (isGrounded) State = States.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 FixedUpdate()
{
CheckGround();
}
private void Update()
{
if (isGrounded) State = States.Idle;
if (Input.GetButton("Horizontal"))
Run();
if (isGrounded && Input.GetButtonDown("Jump"))
Jump();
}
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;
if (!isGrounded) State = States.Jump;
}
}
public enum States
{
Idle,
Run,
Jump
}
Код рабочий можете сверятся
Вот код CameraController:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField] private Transform player;
private Vector3 pos;
private void Awake()
{
if (!player)
player = FindObjectOfType().transform;
}
private void Update()
{
pos = player.position;
pos.z = -10f;
transform.position = Vector3.Lerp(transform.position, pos, Time.deltaTime);
}
}
Оба кода рабочих
Продвиньте в топ, чтобы другим помочь, пожалуйста
@@user-wf9zg8dx4e что делать если анимация персонажа Ран работает часто чем Айдл
@@user-wf9zg8dx4e можно твой телеграм или дискорд?
Чувак, ты икона
Спасибо
спасибо что помогаешь создать игры таким же делитантам как я 😁👍
Спасибо за реализацию! Очень интересно, хоть и по гайду, но все же самому делать игру. Как и многих, напрягают немного обрезанные части кода, не понятно, что куда идет. Просто крупный шрифт полного окна вполне читаемо смотрится и с монтажом меньше мороки. Ну и этот тот формат видео, в котором комментаторы позарез нужны, иначе лагов много возникает в процессе!! Тем не менее, спасибо за такой труд!
Спасибо за видео
Если у кого-то проблемы с анимациями можете попробовать сделать так:
Попробуйте открыть таблицу с Animator’ом и в inspector в Conditions поставить State - Equals - 0. Проделайте тоже самое в run и jump, только в run выставьте Equals 1, а в jump Equals 2.
В скрипте, в “private States State” напишите в скобках State с большой буквы.
Мне помогло
А хотел спросить, если от Any State можно сделать только одну связь, можно что-то сделать?
Я немного переделал код, но у него выглядит так удобно
Хотелось бы так же
Спасибо помогло с анимацией прыжка, думал поседею почему не работало)
какой в жопу кандитиос
СПАСИБООООООООООООООООООО
Заработала анимация!!! State с большой буквы нужно писать!!! Автор видео - косепор!) Из-за его ошибок столько времени теряешь и вообще желание продолжать исчезает! Сцуко!
Видео хорошее, спасибо !!! ))
Только толи я прослушал в каком моменте было сказано, что скрипт - CameraController необходимо было повесить на MainCamera :)), толи и правда не было сказано )), так небольшое дополнение ))
Так это еще и отдельный скрипт я вообще это в первом написал
Ты лучший!
Жду больше видео, и желаю много просмотров. Не сдавайся **
Спасибо очень помог
Хорошо и главное просто зделал камеру а то я морочился сложной камерой
ТОПП, у всех камера резкая, а ток у тебя, вышла плавная, жалко что ютуб запросил
Чётко продолжай
Видос ПУШКА, спасибо большое
Наконец-то я потратила время не зря
Спасибо,очень помогло)
Спасибо за урок)
Если камера не следит за игроком попробуйте в дереве иерархии переместить камеру ниже Hero.У меня так сработало
Если у кого-то персонаж при прыжке судорожно переключает анимацию падения, то ловите таблэтку: просто создайте отдельно анимацию падения(falling), потом в Animator проведите стрелку от Any State к falling, задайте Equal = 3. Потом в методе, где проверяется находится перс на земле или нет, допишите это: if (rb.velocity.y < 0.0f) State = States.falling; и private bool isFalling = false; (это в начале строки, где мы указываем значения прыжка, скорости передвижения и тд)
Спасибо, мил человек
При активации скрипта camera controller - игра создает невидимые текстурки и перс движется сам по себе(скользя по платформе). Что делать в таком случае?
Класс
Альтернатива проверки состояния IsGrounded:
private bool isGrounded = false; // Она уже должна быть создана выше, как в видео
private void OnCollisionStay2D(Collision2D collision)
{
isGrounded = true;
}
private void OnCollisionExit2D(Collision2D collision)
{
isGrounded = false;
}
}
Друг, подскажи вместо чего подставлять твой вариант кода?
Огромное спасибо
Подскажи пожалуйста, что делать если создал анимацию и не отображается на экране игры, но при этом в сцене работает. Ещё есть проблема изменяющейся анимации, она то работет то не работает даже в окне сцены и от запуска к запуску по разному, хотя к коду я ещё даже не перешёл
Заранее спасибо
В поддержку
Ну ты сусанин кодовый даещь жару !!!!
Была проблема в том, что position по Y для Hero и Main Camera по-разному считались, так что у меня камера сдвигалась вниз относительно персонажа
Сделал костыль, прибавив 7.0f к "pos.y"
Но хотелось бы выяснить причину и как с этим красиво бороться
Пытаюсь понять выше сказанное такая же ошибка....
Сделай как ты сделал анимацию для прыжка и бега отдельно
что делать если он у меня пишет огромное количество раз 2 ошибки:
MissingComponentException: There is no 'Animator' attached to the "Circle" game object, but a script is trying to access it.
You probably need to add a Animator to the game object "Circle". Or your script needs to check if the component is attached before using it.
и
'Hero' AnimationEvent has no function name specified!
При прыжке на платформу, если приземлиться не сверху а падать сбоку, код определяет что я якобы стою на земле, и могу подпрыгнуть еще раз( пытался уменьшить бокс колайдер. Но не помогает). И очень даже хорошо, было бы реалистично, якобы подтянулся на верх. Но он почему то этот прыжок делает в 3 раза сильнее. Поможет кто, решить этот вопрос?
Прыжок сильнее потому что пока ты у стены находишься ускорение придается не один раз как было когда ты на земле а все время пока ты у стенки и нажата клавиша прыжка.
Как я понимаю тут нужно во первых переписывать проверку приземления как то, а во вторых вешать движение не на апдейт а на фиксед апдейт.
Что делать, если перестало разворачивать персонажа по оси x?
Возможно на основном объекте плеера добавился свой Sprite Renderer и скрипт работает с ним, а не с дочерним. Знаю, что вопрос для тебя уже не актуален, пишу для потомков.
@@Toxa357 спасибо
@@Toxa357 а как исправить?
@@rewwer2710 удали Sprite Renderer на основном объекте, чтоб он был только на дочернем или просто отключи его (галочку сними).
А если я сделал свои анимации, но там по 11 20 кадров, я сохранил все в гиф файлах, как я могу их использовать?
ты самый крутой ютубер
Он просто любил жизнь!
Большое спасибо вам,но почему во время слежки камеры,у меня как то дергаются мои платформы.
попробуй их впритык поставить, возможно между ними небольшое расстояние есть
Перестал прыгать персонаж и ошибка MissingComponentException: There is no 'Animation' attached to the "Player" game object, but a script is trying to access it. много раз, помогите уже 2 часа сижу разбираюсь
Спасибо! Отличное видео. Только вот есть один вопрос. После добавления анимации персонаж перестал поворачиваться в сторону направления.
Та же проблема
В Hero появился sprite renderer его нужно удалить и реверс заработает
@@Falkot78 Спасибо! Заработало ))
Надо было с Hero удалить компонент sprite renderer
@@Falkot78 Спасибо, вот я намучался... А как узнать такое то?
пожалуйста помогите, анимация прыжка работает отлично, но вот анимация idle и run не переключаются между собой, у меня на земле постоянно idle.
ТОЖЕ САМОЕ
Идея видео класс, но минус в том что половину нужно додумывать самому
Разве же это минус? наоборот научишься сам делать больше чем тебе дают
Так нихуя не работает когда сам делаешь@@bijin7510
Что делать если в Unity 2022 пишет ошибку в скрипте C# что error CS1007: Property accessor already defined?
Хотя я всё делал из этого видео тутора
Скиньте полные коды пожалуйста! Я так просто не понимаю.
Привет!
Кто-нибудь может подсказать,делаю анимацию,прямо как в ролике,но вместо того чтобы спрайт сам заменялся - добавляется новый объект большого размер(типо моделька)
Возникла проблема анимации переключаются подряд сами по себе. Все работает но что в движении, стоя на месте и в прыжке срабатывают сразу все анимации. Подскажите что надо сделать!!
Проверь, что в каждой анимации в state стоит 0,1,2
Почему у меня только анимация покоя показывается а другие не включаются
возможно тебе уже не нужно но думаю другим пригодится: в Animator в parameters нужно создать поле под названием ИМЕННО state
Привет, отличное видео, но у меня появились баги!
1. Когда я запускаю игру и прыгаю то у меня может 2 прыжка нормальных а потом прыжок в космос и так циклично
2. При добавление анимации, flipX перестал работать (поправочка: починил, в Hero появился Sprite Renderer который мешал)
О, помог с flipX, спасибо)
у меня тоже проблема как у тебя в 1 первом пункте
тоже помог с flipX
за 2 мое уважение
@@samuraikendo5153 не за что
Я тебя люблю.
Подскажите пожалуйста, почему я не могу сделать второй раз Make Transition из Any State? 2:42
Из за этого у меня происходит только idle и все. Буду очень благодарен!!!!!!!!!!
баг версии юнити, обнови до более новой
У меня при запуске игры в Idle дерганное Idle смешанное с Jump который вообще в другом месте. Можете помочь?
Я ещё в Update() добавил pos.y += 2f; чтоб камера была чуть повыше персонажа.
Ребят, у кого проблема с тем, что воспроизводится сразу две анимации во время бега и прыжка, то в аниматоре поставьте у анимации прыжка state = 2, а у бега state = 1
непомогло
У меня почему то спрайт постоянно отображается на заднем плане, а так работает все. Как убрать этот спрайт?
можно ли поставить просто Cinemachine вместо скриптов на камеру?
Как сделать камеру менее плавной? У меня персонаж немного перегоняет её. Сделать персонажа медленнее не вариант.
transform.position = Vector3.Lerp(transform.position, pos, 3* Time.deltaTime);
может поздно, но вот, можно в этой строке добавить множитель к значению Time.deltaTime
можно так же сделать множитель отдельной переменной и вынести в инспектор по желанию, чтобы подстраивать прямо в юнити
@@user-zl8ky7oy7w спасибо)
Привет, хотел спросить: у меня перс все время кудато медленно иногда быстро движется без моего нажатия . С чем это может быть связано? а так все работает спасибо!!
и поворот персонажа перестал работать
Error:MissingComponentException: There is no 'Animator' attached to the "Hero" game object, but a script is trying to access it.
Тут всё просто: проверь, BoxCollider2D и Rigidbody2D должны находится не в Sprite, а в Hero
У тебя лучшие уроки на всём ютубе!
Ага, только он украл весь туториал.
ruclips.net/video/CAPVBTKk3Ww/видео.html - вот оригинал
@@Derk89 так оригинальный урок на русском, и более понятно все объясняют.
У меня проблема. При запуске игры вылетает ошибка:
Animator is not playing an AnimatorController
UnityEngine.Animator:SetInteger(String, Int32)
Получилось исправить
Помогите пожалуйста, когда открываю Animator, то у меня нечего нету, нет анимаций как показано на видео. Помогите
Сделай пожалуйста видос про то как добавить рекламу
У меня проблема, анимации не сохраняются в юнити😞
В файлах ини есть а в юнити их нету
После добавления анимации, игрок перестал поворачиваться и смотрит только в одну сторону. Что делать???
Решил проблему?
А почему нету момента когда камеру делают у меня с анимациями проблем нет а вот с камерой есть
Почему получается что анимация встает своим центром в центр ног и отображаются сразу два персонажа - анимация работает анимацией и дополнительно не поворачивающийся базовый спрайт Hero? Они и двигаются вместе. Unity 2021.3.15f1
Решил вопрос. Помог Jason Weimann - ruclips.net/video/HAvfA1F3qTo/видео.html&ab_channel=JasonWeimann
Добавил сразу анимацию idle(выделив сразу оба frame) в окно иерархии - объект Hero создается автоматически, надо только переименовать.
P.S. И чтобы анимация прыжка работала нормально выключаем Loop Time в Jump Animation.
как сделать, чтобы персонаж следовал за джойстиком?
А что делать если камера вроде как следит, но при этом платформа улетает далеко в противоположную сторону
Здравствуйте
Не подскажете в чем проблема ?
ArgumentException: GetComponent requires that the requested component 'RigidBody2D' derives from MonoBehaviour or Component or is an interface.
UnityEngine.Component.GetComponent[T] () (at :0)
Hero.Awake () (at Assets/Scripts/Hero.cs:19)
надо на форуме искать
На самом деле компонент RigidBody2D не существует а надо было "Rigidbody2D". Ты просто написал компонент в виде кэмел кэйс
Привет) А у меня появился такой вопрос: Есть ли разница между тем, что бы в коде прописывать камере следовать за игроком, и просто сделать камеру дочерним нашему Hero?
Есть разница, потому что скриптом камера двигается намного плавнее и красивее
Доброго дня! Может кто подсказать... Компонент аниматор добавил на ГГ, и в нем видно, что они работают, когда бежишь и прыгаешь, но при этом анимация остается idle. Код кучу раз перепроверил, проблема точно не в нем. Может я как то неправильно в самом аниматоре сделал ( все по видео делал).
У меня так же
Srite Render удали. ВЫше написано же.
на каком объекте удалить?
@@okiemes196
А если я нажал Create Animation, случайно выбрал не ту папку, удалил те файлы с анимацией и теперь у меня нету кнопки Create Animation. Пожалуйста помогите!
Над 7 минутами пришлось 2 дня думать ,что исправить. С начало в комментах увидел, что state на State поменять. Ушла ошибка. Потом проблемы с анимацией, она поверх Hero появлялась и на половину ниже. Решено было переделать её заново. И в итоге Получалось ,что я последующие sprite не добавлял к новым анимациям, а сами анимации перетаскивал , а нужно было как бы на спрайт накладывать эти изображения. Может кому помог. Аналогичных вопросов в комментах не обнаружил. Зато за эти 2 дня лучше код начал понимать , а то при написании понимал 30% написанного) Андрей,33 годика.
Огромное спасибо, прям дословно мои проблемы описал, особенно про 2 дня и что касается анимации)) Никитка, 22 годика
Можешь объяснить насчёт анимации? У меня такая же проблема, но я не могу понять, как это исправить.
@@neverm1ndr на данный момент забросил с этим делом и сейчас не смогу вспомнить что и как...
Тоже самое говно. Но я решил что будет проще написать свой код. И получилось норм
Очень нужен ответ что это значит: У меня тоже персонаж вниз уходит его анимация прыжка
Получалось ,что я последующие sprite не добавлял к новым анимациям, а сами анимации перетаскивал , а нужно было как бы на спрайт накладывать эти изображения. Может кому помог.
Если стою на месте происходит анимация idle и выдает бесконечно ошибку: 'Hero' AnimationEvent has no function name specified! В чем проблема?
У меня вылетел Unity, и проект не сохранился. теперь у меня нет абсолютно никакого желания делать игру дальше 👍 (по крайней мере сегодня)
Позавчера у меня во время создания игры моргнул свет и пк перезапустился, тоже ничего не сохранилось, теперь каждые 5 минут ctrl s тычу
@@khmelyowww657 Да, у меня уже на автомате тыкаются эти клавиши. Кстати, я уже продвинулся в проекте далеко, надеюсь закончу когда-нибудь.
здарова! помоги пожалуйста... у меня во время анимации не поворачивается герой + не прыгает изза чекграунда
Не фурычит переключение анимации все сделал по видосу и State написал с большой. Когда проигрываю анимации бега и прыжка появляется новый персонаж (потом пропадает) но при запуске игры ток анимация покоя
А как сделать, так чтобы камера быстрее двигалась?
Ладно idle показал как сделать, но почему не показать run и jump, я вообще не вижу где Sprite для этого
Подскажите пожалуйста, почему персонаж перестал прыгать и запускать анимацию прыжка и бега. Буду благодарен.
В коде наверное допустил ошибки
Assets/Scripts/Hero.cs(46,40): error CS0117: 'States' does not contain a definition for 'run' . Помогите, что с этим делать?
Спасибо за видео! Сделай урок по ИИ наносящий урон
Помогите пожалуйста, такая проблема, что при добавлении скрипта с камерой, игра перестаёт запускаться((( В чём может быть проблема?
Ошыбка в скрипту может быть
а что по скрипту? почему бы не показать его полностью так как не совсем понятно,вернее совсем
Не знаю, поможет это кому или нет, но при проверке анимации у меня была проблема с тем, что они в принципе не запускались(не было ответа на нажатие в animator'e, во время игры). Казалось бы, вроде и ко правильный, и сохранил все с нужной величиной букв. В чем дело?
В аниматора, int "State" был прописан с большой буквы, а в коде - с маленькой("state"). Сравнял и в аниматоре, и в коде = заработало.
Заметил, что если прыгнуть в платформу (которая в воздухе), герой может прыгнуть повторно. Видимо проблема в isGrounded = collider.Length > 1
Коллайдеру пофиг сверху ты его касаешься или сбоку или снизу. Все равно сможешь прыгнуть. Если упрешься головой в потолок, тоже сможешь как бы прыгнуть, но по сути по потолку передвигаться на голове.
эта фитча для спидранеров
у меня все лишь на одной анимации прыжка, другие не показывает. Все как на видео
Спасибо большое за видео но есть некоторые проблемы с движением персонажа (в некоторых местах он не прыгает) и ещё некоректно работает анимация
У меня так же некорректно работ ает анимация, я думаю просто стоит растянуть её
Тупость написал, толь ко что все сделал и работает, надо просто убрать картинки из анимации, которые проявляются из за создания в анимации спрайта, если проще то просто в анимации убери самую левую и правую карти нку, после чего все оставшиеся картинки сдвинь в начало, с тем же расстоянием между друг другом
Код на игрока
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 jampForce = 0.4f;
private bool isGrounded = false;
private Rigidbody2D rb;
private Animator anim;
private SpriteRenderer sprite;
private States State
{
get { return (States)anim.GetInteger("state"); }
set { anim.SetInteger("state", (int)value); }
}
private void Awake()
{
rb = GetComponent();
anim = GetComponent();
sprite = GetComponentInChildren();
}
private void FixedUpdate()
{
CheckGround();
}
private void Update()
{
if (isGrounded) State = States.Idle;
if (Input.GetButton("Horizontal"))
Run();
//if (Input.GetButton("Jump"))
//Jump();
if (isGrounded && Input.GetButton("Jump"))
Jump();
}
private void Run()
{
if (isGrounded) State = States.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 * jampForce, ForceMode2D.Impulse);
}
private void CheckGround()
{
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
isGrounded = collider.Length > 1;
if (!isGrounded) State = States.Jump;
}
}
public enum States
{
Idle,
Run,
Jump
}
Рабочий?
спасибо
Спасибо!
У меня челик не прыгает, а взлетает это нормально?
@@ZariDrag0nУ меня тоже. Анимация нету
Альтернатива для камеры из другого проекта (без FindObjectOfType):
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField] private Transform objTransform;
[SerializeField] private Vector3 offset = new Vector3(0, 0, -10f);
[SerializeField] private float camSpeed = 5f;
private void Update()
{
Vector3 newCamPos = new Vector3(objTransform.position.x, objTransform.position.y, offset.z);
transform.position = Vector3.Lerp(transform.position, newCamPos, camSpeed * Time.deltaTime);
}
}
Скорость камеры можно менять (Cam Speed)
В самом Unity на objTransform перетаскиваем игрока (Hero, родительский объект). Внимательно проверяем offset если камера улетает, он отвечает за расстояние камеры до игрока и у меня он по стандарту по оси Z и равен -10f.
Спасибо тебе огромное!!! помог ппц
не робит
Ребят подскажите пожалуйста. У меня перестал работать flipX. Так же когда я начинаю бег у меня ставится пауза, что делать?
У меня при запуске игры камера опускается вниз , что делать?
Я никак не могу сделать эти анимации. При запуске постоянно в консоле пишет: " Parameter 'state' does not exist ". В чём проблема?
Видимо ты не создал параметр для состояния в аниматоре
Или регистр слова "State" отличается в коде и в Unity
Почему когда я написал код он перестал поворачиваться назад когда я добавил анимацию?
У меня тоже после добавления анимации перестал поворачиваться.
Тоже самое, смог исправить?
@@al_re_art8 нашёл решение?
@@ReyKapcher Убери на hero sprite renderer
Как исправить баг,когда я воссоздал анимации все,они работают только в одну сторону (т.е. персонаж смотрит только в одну сторону)
ответ выше, нужно Sprite Renderer удалить у объекта Игрок
при реализации скрипта на движение камеры за персонажем появляется ошибка "Не удалось найти тип или имя пространства имен", когда ищу обьект "hero"
Возможно у тебя другое название у empty об'ъекта
@@exLeute я решил проблему с помощью поиска по тэгу
@@radiance7059 подскажите, как именно ? Все ломается и не работает
У меня почему-то при запуске - камера движеться в сторону. Как это исправить?
А что делать если не добавляется в анимацию?