Какой же автор ты молодец! У меня стало все получаться, когда я поняла, что нужно выполнять твои уроки последовательно - от первого ко второму и так далее, так будет проще
Спасибо большое за видео урок. Я три дня по пару часов мучался,чтобы он прыгал опред количество раз,но по видео androidhelpera у меня получалось или бесконечное количество раз или вообще как столб прибит к земле,но с твоим видосом я наконец то смог заставить мой кубик прыгать,а не летать. Еще раз ОГРОМНОЕ спасибо, удачи по жизни.
Бро, спасибо за видос, я изломал всю голову как совместить проверку земли, количество прыжков и нажатие на кнопку. Я не знаю что я делал бы без твоего видоса.
спасибо за ваши уроки. всё доступно и понятно. начал с вашего курса 3дмакса. уже подхожу к концу и когда-нибудь доберусь и до этого урока :) поражают ваши познания в программировании и моделировании и стиль вашего изложения! всё очень круто, спасибо!
СПАСИБО ПРОСТО ОГРОМНОЕ СПАСИБО Это единственное видео, которое мне помогло сделать прыжок, я вам бесконечно благодарна, словами не передать насколько.
Реально спасибо тебе больше,очень помог с этим. Сейчас задали проектную работу сделать(игру) и не знал как код написать. Благодаря тебе больше узнал! Весьма благодарен,пошёл дальше смотреть твои видео! Лайк == подписка. Удачи тебе в будущих проектах
Помогите пожалуйста сделать ограничение прыжков с Tilemap. Я не понимаю как надо делать что бы все работало. Потому что если поставить Tilemap слой нужный то персонаж все равно прыгает везде где хочет.
Пжжж если есть такое видео то скажи его название, как сделать чтобы если игрок соприкасается с шипами или в него стреляет вражеский объект, то он не моментально снимал ему всё хп а была задержка между нанесением урона
Привет! У меня небольшой вопрос.У меня есть летающая платформа в игре на обычных стенах я просто изменял Слой но как сделать с платформой если я уберу с них слой то игрок не сможет отпрыгнуть от края, что делать? Пытался использовать OnDrawGizmosSelected, но почему то круг при старте переносится в середину игрока, как его перенести обратно к ногам я не знаю да и не думаю что это поможет.Что делать?!
У меня при изменении Scaler с 1 на -1 также меняется Position на отрицательное значение, из-за этого персонажа перемещает в противоположную сторону экрана, кто может помочь?
Помогите у меня ошибка Assets\Scripts\Contrl.cs(27,26): error CS0117: 'Physics2D' does not contain a definition for 'OverLapCircle' . пожалуйста подскажите .
Блин, ребят, объясните пожалуйста кому не впадлу, зачем нам нужно условие на 11:24? Минут 15 сижу и не могу понять что оно проверяет... То есть, когда у нас заканчиваются дополнительные прыжки (первый if пропускается, т.к. extraJumps становится меньше 1) мы заходим в else и проверяем: если мы нажимаем стрелку вверх и количество дополнительных прыжков равно 0 и мы на земле, то опять прыгаем. Зачем? То есть мы находимся на земле, у нас закончились прыжки, но они же опять добавятся в следующем вызове Update(), и зачем нам сейчас прыгать? Я туплю, ноо... объясните пожалуйста.
Update зависит от производительности устройства игрока. FixedUpdate не зависит. С ним легче работать, если тебе нужно прописать что-то, связанное с действием по времени, чтобы на всех устройствах с разной мощностью работало одинаково.
У меня код идентичный, но игрок разгоняется слишком долго до максимальной скорости, с использованием GetAxisRaw все происхожит слишком резко, при использовании не скорости, а просто изменении позиции игрок при столкновении со стеной начинает "пытаться" в нее входить и его начинает дергать. С материалом тоже не все ясно, поставил два коллайдера, на тело и ноги, на теле материал без трения, чтобы он не цеплялся за стены, а на ногах трение 3, чтобы он тормозил быстрее, чем ускорялся, пытался через Linear Drag, но от него страдает прыжок, при прыжке на другую платформу, нижний коллайдер задевает платформу и из-за материала остается там. Вопрос - как это исправить? Заранее извини за беспокойство и спасибо
самые лучшие рус. уроки) англ очень сложно смотреть, так чтобы и субтитры читать и успевать кодить, а не ставить на паузу каждые 5 сек) спасибо тебе, с меня лайк и подписка
Не понимаю почему такой офигенный канал имеет столько подписчиков?😟 Спасибо тебе большое за то, что делаешь такие видеоуроки 👍👍👍 Благодаря им мой персонаж теперь может двигаться😂 но я делал все как на видео, но он не прыгает, только движется на право и налево. Не подскажешь пожалуйста как это исправить?
Привет.Помоги пожайлуста у меня проблема,хотя я написал всё идеально!!!У меня кароч когда я запускаю игру он прыгает определенное кол-во раз а потом хоть пробел прожми стоит как вкопаный почему??
Здравствуйте, отличные ролики ! Назрел вопрос, private и public , это модификаторы доступа. Где-то я читал , что если не ставить модификатор то он автоматически private, тогда зачем вы вручную ставите?) ( "private float moveInput", "private void Start", и т.п.)
Подскажите пожалуйста. У меня jump не работает, а в функции ExtraJumpValue я могу указать сколько всего прыжков может совершить герой, как решить проблему подскажите пожалуйста
@@graphicaldesign2776, нет, все работает просто если я установлю jump 10, a ExtraJumpValue 0, то он не будет прыгать. Примерный вид Speed 10 Jump 10 ...... .... ExtraJumpValue 0 Он не прыгает,но если я напишу Speed 10 Jump 10 .... ..... ExtraJumpValue 1 То персонаж прыгает 1 раз
У меня во время первого прыжка он отнимает единицу от extraJumps, не успев оторваться от земли (как я думаю) тут же прибавляет единицу к extraJumps, в итоге он прыгает два раза в воздухе. Кто нибудь знает как это пофиксить?
Помогитеееее пж, короче я всеее сделал как надо прям всё! А он во первых не падает ну типо где его ставишь там и остается в воздухе во вторых он не идет направо или налево а если я нажму вверх(прыжок) он просто взлетает наверх и летит без конца! помогиииииииииииите!
Помогите пожалуйста. С помощью этого видео я хотел сделать ограничение в количестве прыжков у персонажа. Всё написал, включаю игру, прыгаю. Всё классно, но есть проблема, персонаж прыгает, а дальше отказывается. Что не так?
Можешь сказать пожалуйста какая у тебя версия visual studio? Я скачал 2019 с офф сайта, а она какая-то странная. И если не сложно ещё как ты сделал чёрным фон.
Если ты про подсказки, то нужно зайти Edit -> Preferences - > External Tools -> Externel Script Editor (это нужно делать в юнити) потом перезапустить код (появятся в течение минуты после запуск кода). А что-бы зделать тёмную тему нужно зайти в Средаства -> Параметры -> Окружение -> Общие -> Цветовая тема.
@@stevemonalola5395 спасибо, но оказывается системный visual studio, который скачивается вместе с юнити у меня не запускался потому что я не выбрал его как редактор, поэтому скачал новый (херовый). И ещё раз спасибо, про темную тему я не знал, выглядит салидно:) .
Прошу помощи! Все ровно работает автору огромное спасибо, я этом пока что полный 0 поэтому и возник вопрос... Как сделать чтоб персонаж прыгал по кнопке на экране? Я создал кнопку и персонажа перетянул туда, теперь как я понимаю в скрипте надо вызвать функцию(может что то не так пишу, заранее сорян) чтоб она отображалась там. Или как то можно в этом коде if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0) прописать вместо (KeyCode.UpArrow) что то другое? Например на кнопке сделать сделать что-то по типу ссылке и добавить ее вместо UpArrow. Буду благодарен за помощь
на персонаже в rigidbody2d нажми на constrains и выбери пункт на Freeze Rotation. А если хочешь чтоб персонаж крутился это надо просто сделать анимацию и настроить
@@zuxccc Спасибо уже решил проблему.Прикрепил GroudCheck и персонажа к другому объекту не соединяя их и сделал так чтобы GroudCheck двигался за персонажем
@@graphicaldesign2776 у меня такая же проблема, ставлю JumpForce на 5(или вообще любое число) и начинает улетать в небо, соответственно ни какая кнопка не помогает. Может подскажите где код с подбрасыванием персонажа?
@@graphicaldesign2776 я сделал как вы говорили, но у меня все равно не запускается и в скрипте не появились новые вкладки что делать? Мне кажется ошибка в коде потому что в консоле пишется ошибка, вот сам код если можете и есть время проверьте пожалуйста, код: using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { public float speed; public float jumpForce; private float moveInput; private Rigidbody2D rb; private bool facingRight = true; private bool isGrounded; public Transform groundCheck; public float checkRadius; public LayerMask whatIsGround; private int extraJumps; public int extraJumpsValue; private void Start() { extraJumps = extraJumpsValue; rb = GetComponent(); } private void FixedUpdate() { isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround); moveInput = Input.GetAxis("Horizontal"); rb.velocity = new Vector2(moveInput * speed rb.velocity.y); if (facingRight == false && moveInput > 0) { Flip(); } else if (facingRight == true && moveInput < 0) { Flip(); } } private void Update() { if (isGrounded == true) { extraJumps == extraJumpsValue; } if (Input.GetKeyDown(KeyCode.UpAroow) && extraJumps > 0) { rb.velocity == Vector2.up * jumpForce; extraJumps--; }else if (Input.GetKeyDown(KeyCode.UpAroow) && extraJumps == 0 && isGrounded == true) { rb.velocity = Vector2.up * jumpForce; } } void Flip() { facingRight = !facingRight; Vector3 Scaler = transform.localScale; Scaler.x *= -1; transform.localScale=Scaler; } } перепровирял три четыри раза не смог найти ошибки, или я просто невнимателен:(
Наверное, никто не ответит, но всё равно опишу здесь свою проблему. Всё получилось вроде, только не возобновляется количество доступных прыжков. Инструкции следовал на 100%, код идеально совпадает, я проверял. В чём может быть дело?
UnassignedReferenceException: The variable groundCheck of PlayerControll has not been assigned. You probably need to assign the groundCheck variable of the PlayerControll script in the inspector. UnityEngine.Transform.get_position () in :0 PlayerControll.FixedUpdate () (at Assets/PlayerControll.cs:24) Как решить эту проблему? Персонаж просто не прыгает. Двигается, но не прыгает
Привет, а как сделать, чтобы персонаж не мог отпрыгивать от стен. И когда персонаж в воздухе около стены, есть ощущение, что гравитация медленнее работает, даже с фиксом физического материала.
Для того чтоб он не отпрыгивал от стен, радиус окружности надо уменьшить, чтоб эта окружность не воспринимала стену как пол. А для того чтоб не замедлялась гравитация, может помочь увеличение коллайдера
Подскажите что уже только не пробовал. Суть в том что у персонажа бесконечные прыжки. Код идентичен (проверял многократно) всё вроде по видео сделал. Может есть варианты в чём может быть проблема!?
так тут же не только код важен Надо чтоб земля была на слое ground Чтоб groundcheck был внизу персонажа чтоб радиус был достаточный для считывания информации
Какой же автор ты молодец!
У меня стало все получаться, когда я поняла, что нужно выполнять твои уроки последовательно - от первого ко второму и так далее, так будет проще
Спасибо за уроки, самый удачно обучающий курс уроков, именно обучающий , а не транслирующий...Подписка+ лайки...
Смотрел ваши уроки по 3D моделированию, и теперь дошёл до игровых движков, спасибо вам за ваши уроки!
и к чему пришли?
@@GGamess моделю )
Как бы я жил без вас
Интересный факт: Maxter учился создавать игры у него
Спасибо большое за видео урок. Я три дня по пару часов мучался,чтобы он прыгал опред количество раз,но по видео androidhelpera у меня получалось или бесконечное количество раз или вообще как столб прибит к земле,но с твоим видосом я наконец то смог заставить мой кубик прыгать,а не летать. Еще раз ОГРОМНОЕ спасибо, удачи по жизни.
Бро, спасибо за видос, я изломал всю голову как совместить проверку земли, количество прыжков и нажатие на кнопку. Я не знаю что я делал бы без твоего видоса.
спасибо за ваши уроки. всё доступно и понятно. начал с вашего курса 3дмакса.
уже подхожу к концу и когда-нибудь доберусь и до этого урока :)
поражают ваши познания в программировании и моделировании и стиль вашего изложения! всё очень круто, спасибо!
у меня нет в отделе Nothing нет Ground что делать видио сто раз пересмотрел не нашел ошибку вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float speed;
public float jumpForse;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LeyerMask whatIsGround;
private void Start()
{
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2 (moveInput * speed, rb.velocity.y);
if(facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
@@channelofmaks9505 Держи код (вроде правильный)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class (тут имя вашего скрипта) : MonoBehaviour
{
public float speed;
public float jumpForce;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask whatIsGround;
private int exstraJumps;
public int extraJumpsValue;
private void Start()
{
exstraJumps = extraJumpsValue;
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if (facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
private void Update()
{
if (isGrounded == true)
{
exstraJumps = extraJumpsValue;
}
if (Input.GetKeyDown(KeyCode.UpArrow) && exstraJumps > 0)
{
rb.velocity = Vector2.up * jumpForce;
exstraJumps--;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
Спасибо тебе бро!) Я умел делать прыжки, но только так выходило, что перс мог прыгать бесконечно много, но ничё теперь он не такой наглый))
у меня нет в отделе Nothing нет Ground что делать видио сто раз пересмотрел не нашел ошибку вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float speed;
public float jumpForse;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LeyerMask whatIsGround;
private void Start()
{
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2 (moveInput * speed, rb.velocity.y);
if(facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
@@channelofmaks9505
public LeyerMask whatIsGround;
isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
тут и тут неправильно написал слова
@@kelni спс
Спасибо
Наконец-то нашел адекватного учителя, излагающего четко и последовательно свою мысль. Огромная благодарность!
СПАСИБО ПРОСТО ОГРОМНОЕ СПАСИБО
Это единственное видео, которое мне помогло сделать прыжок, я вам бесконечно благодарна, словами не передать насколько.
Реально спасибо тебе больше,очень помог с этим. Сейчас задали проектную работу сделать(игру) и не знал как код написать. Благодаря тебе больше узнал! Весьма благодарен,пошёл дальше смотреть твои видео! Лайк == подписка. Удачи тебе в будущих проектах
Спасибо тебе, всё очень грамотно объясняешь, при этом не растягивая видео на час. Очень сильно помогли твои видосы)
Помогите пожалуйста сделать ограничение прыжков с Tilemap. Я не понимаю как надо делать что бы все работало. Потому что если поставить Tilemap слой нужный то персонаж все равно прыгает везде где хочет.
Крассаучег! Продолжай в том же духе!) от русскоязычных лучшие уроки!)
Спасибо огромное. Очень долго искал тутор по тому, как сделать что б персонаж бесконечно не прыгал в воздухе. Ваш тутор очень помог c:
БРО СПАСИБО ТЕБЕ БОЛЬШОЕ ТЫ ТАК МНЕ СИЛЬНО ПОМОГ!!!!!
Спасибо автору канала! Отличная подача информации.
8:28 а что делать если нету ground check???
Ты лучший! Спасибо
Что делать если персонаж не видит ground? Добивил все в слои и просто не прыгает
Пжжж если есть такое видео то скажи его название, как сделать чтобы если игрок соприкасается с шипами или в него стреляет вражеский объект, то он не моментально снимал ему всё хп а была задержка между нанесением урона
Привет! У меня небольшой вопрос.У меня есть летающая платформа в игре на обычных стенах я просто изменял Слой но как сделать с платформой если я уберу с них слой то игрок не сможет отпрыгнуть от края, что делать? Пытался использовать OnDrawGizmosSelected, но почему то круг при старте переносится в середину игрока, как его перенести обратно к ногам я не знаю да и не думаю что это поможет.Что делать?!
Огромное тебе спасибо! Я уже перепробовал несколько вариантов, и только твой сработал! Просто и понятно! Спасибо
Крутой урок. Всё оч интересно и доступным языком рассказано для нубов :)
Всё полностью рабочее!!! Если у кого то ошибка смотрите внимательнее видео!!!
Здравствуйте.Столкнулся с проблемой того что персонаж не поворачивается в сторону движения.
private bool facingRight = true;
if(facingRight == false && moveInput > 0)
{
Flip();
}
else if(facingRight == true && moveInput < 0)
{
Flip();
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
В скрипте вроде ошибок нет. Надо искать проблему не здесь.
@@graphicaldesign2776 Но это действие зависит только от скрипта, что еще может влиять на это ?
@@graphicaldesign2776 Извиняюсь возможно выложил слишком длинный вопрос( я про код).Укоротил его.
Попробуй заменить метод Flip на этот код (у меня работает) :
void Flip()
{
if (Input.GetAxis("Horizontal") > 0)
{
transform.localRotation = Quaternion.Euler(0, 0, 0);
}
else if(Input.GetAxis("Horizontal") < 0)
{
transform.localRotation = Quaternion.Euler(0, 180, 0);
}
Незнаю почему, смотрю уже 12 урок и не получается сделать прыжок(((
Там нет ничего сложного
@@FXUNDPLXGG Давно задавался этим вопросом, я уже давно все сам решил)
@@flexnise6572 если получилось, не мог бы скинуть скрипт для прыжка?)
@@keyk7994 Сори, но не могу( делал 4 месяца назад, а проект уже давно удалил, вместе со скриптами
@@flexnise6572 зря
У меня при изменении Scaler с 1 на -1 также меняется Position на отрицательное значение, из-за этого персонажа перемещает в противоположную сторону экрана, кто может помочь?
здрастье а почему персонаж прыгает бесконечное количество раз не коснувшись земли
вроде extraJumpValue стоит на нуле
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JampPlayer : MonoBehaviour
{
public float speed;
public float JumpForce;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask whatIsGround;
private int extraJump;
public int extraJumpValue;
private void Start()
{
extraJump = extraJumpValue;
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if (facingRight == false && moveInput > 0)
{
Flip();
}
else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
private void Update()
{
if (isGrounded == true)
{
extraJump = extraJumpValue;
}
if (Input.GetKeyDown(KeyCode.Space) && extraJump > 0)
{
rb.velocity = Vector2.up * JumpForce;
extraJump--;
}else if (Input.GetKeyDown(KeyCode.Space) && extraJump == 0 && isGrounded == true)
{
rb.velocity = Vector2.up * JumpForce;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
где extrajump- напиши два минуса
Ты просто лучший,очень сильно помог,лайк однозначно
у меня возникла проблема, персонаж при движении не отзеркаливается. в чём проблема?
этот код уже старый и не работает, проще говоря говнокод, ищи другой способ.
@@ddrgs60 ок, спс
Автор красаучег! спасибо большое)
Благодарю за очень очень полезный урок!!! Я начинающий совсем, всё повторил со своими оригинальными спрайтами, получилось отменно! Поклонидзе до пупа!
Мне конечно Вряд-ли ответят но что мне делать? Мне выдаётся ошибка CS0117 Physics2d does not contain a definition for OverLapCircle
Тут же написано, что не существует Physics2d
Потому что есть Physics2D
@@graphicaldesign2776 ну у меня так и написано, просто я с телефона забыл в d больше сделать, но в скрипте все равно ошибка
@@zuxccc Грустно. Нужно смотреть сам скрипт. Не научился еще ванговать.
@@graphicaldesign2776 Вот скрипт (Прошу не обращать внимание на другие команды, просто у меня своя игра):using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Control_Character : MonoBehaviour
{
Rigidbody2D rb;
public Image UIHP;
public float HP;
public Text HealBottleT;
public float HealBottle = 0f;
private bool isGrounded;
public Transform groundCheck;
public float CheckRadius;
public LayerMask WhatIsGround;
private int CountJumps;
public int CountJumpValue;
void Start()
{
HP = 1f;
rb = GetComponent();
}
void Update()
{
UIHP.fillAmount = HP;
if (Input.GetKeyDown(KeyCode.Space) & CountJumps > 0)
{
JumpEvent();
CountJumps--;
}else if (Input.GetKeyDown(KeyCode.Space) & CountJumps == 0 & isGrounded == true)
{
JumpEvent();
}
if (Input.GetAxis("Horizontal") == 0)
{
}
else
{
Flip();
}
if (HP 0f & HP < 1f)
{
HP = HP + 0.20f;
HealBottle = HealBottle - 1f;
}
if (HP > 1f)
{
HP = 1f;
}
}
void OnCollisionEnter2D(Collision2D enemy)
{
if (enemy.gameObject.tag == "Enemy1") //Получение урона
{
HP = HP - 0.25f;
}
if (isGrounded == true)
{
CountJumps = CountJumpValue;
}
}
void ReloadFuckingLevel()
{
SceneManager.LoadScene("SampleScene"); //Перезагрузка лвл
}
void Flip()
{
if (Input.GetAxis("Horizontal") < 0)
{
transform.localRotation = Quaternion.Euler(0, 180, 0);
}
if (Input.GetAxis("Horizontal") > 0)
{
transform.localRotation = Quaternion.Euler(0, 0, 0);
}
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverLapCircle(groundCheck.position, CheckRadius, WhatIsGround);
rb.velocity = new Vector2(Input.GetAxis("Horizontal") * 12f, rb.velocity.y); //Ходьба
}
void JumpEvent() => rb.AddForce(transform.up * 14f, ForceMode2D.Impulse);//Прыжок
private void OnTriggerStay2D(Collider2D other)
{
if (other.gameObject.tag == "Heal")
{
if (Input.GetKey(KeyCode.E))
{
HealBottle = HealBottle + 1f;
}
}
}
}
Ошибка: CS0117 'Physics2D' does not contain a definition for 'OverLapCircle
'
@@zuxccc Вполне ожидаемо, потому что как разобраться с "чужим" проектом, не видя этот проект.
Привет, я зделал платформу через которую я могу запрыгнуть с низу но я не могу сам прыгать на этой платформе, не подскажешь как это исправить ?
Как сделать так что бы персонажа не крутило как у вас в конце видео? 12:54
В Rigidbody зафризить вращение по Z
а что делать если я когда вожу Rigidbody2D у меня не становиться шрифт зельоным цветом? это н
ормально?
или так должно быть?
Можете помочь, я прописываю всё точно так но перс не прыгает а если прописать в Extra Jumps Value значение прыгает столько же. (
Такая же фигня. Число прыжков не ограничено...
скорее всего у тебя платформа не на слое Ground, или граунд чек на находиться в персонаже
@@Vlad2Ray код уже устарел , искать только другой.
Спасибо!!! Долго не понимал как поворачивать игрока в сторону ходьбы, ТЫ ТОП!!!
объекта physics material 2d не существует. где его найти в ассетах и create у меня только physics material
Create>2D>physics material 2d
там его нет, это баг, он есть во всех версиях до версий 2019 года.
Помогите у меня ошибка Assets\Scripts\Contrl.cs(27,26): error CS0117: 'Physics2D' does not contain a definition for 'OverLapCircle' . пожалуйста подскажите .
Чем помочь то и что подсказать?
@@graphicaldesign2776 у меня эта ошибка как её можно исправить , пересматривал много раз ваше видео и делал по нему .
А черт его знает. По строке ошибке ничего не известно.
@@graphicaldesign2776 кажется нужно было написать OverlapCircle а не OverLapCircle . Но это не точно)
Автор, подскажите пожалуйста, вот вы делаете передвижение на статику +-1. А как его сделать более инертным, что бы было ускорение и торможение.
Огромное тебе спасибо. ООООЧЕНЬ ПОМОГ😊😊😊
Приятная картинка!)
У меня ужасный интернет, и не видно текста , можете пожалуйста дать готовый код?Очень буду благодарен!))
Блин, ребят, объясните пожалуйста кому не впадлу, зачем нам нужно условие на 11:24? Минут 15 сижу и не могу понять что оно проверяет... То есть, когда у нас заканчиваются дополнительные прыжки (первый if пропускается, т.к. extraJumps становится меньше 1) мы заходим в else и проверяем: если мы нажимаем стрелку вверх и количество дополнительных прыжков равно 0 и мы на земле, то опять прыгаем. Зачем? То есть мы находимся на земле, у нас закончились прыжки, но они же опять добавятся в следующем вызове Update(), и зачем нам сейчас прыгать? Я туплю, ноо... объясните пожалуйста.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class hero : MonoBehaviour {
public bool Grounded = false;
public Transform GroundCheck;
public float GroundRadius = 0.3f;
public LayerMask wtfIsGround;
Rigidbody2D rb;
Animator anim;
private bool facingRight = true;
void Start() {
rb = GetComponent ();
anim = GetComponent ();
}
void Update() {
if(Input.GetKeyDown(KeyCode.Space) && Grounded) {
pipirka ();
Grounded = Physics2D.OverlapCircle(GroundCheck.position, GroundRadius, wtfIsGround);
}
if(Input.GetAxis("Horisontal") == 0) {
anim.SetInteger ("Lis", 1);
} else {
Flip ();
anim.SetInteger ("Lis", 2);
}
}
void Flip(){
if (Input.GetAxis ("Horizontal") < 0)
transform.localRotation = Quaternion.Euler (0, 0, 0);
if (Input.GetAxis ("Horizontal") > 0)
transform.localRotation = Quaternion.Euler (0, 180, 0);
facingRight = !facingRight;
Vector3 Scaler = transform. localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
void FixedUpdate(){
rb.velocity = new Vector2 (Input.GetAxis ("Horizontal") * 8f, rb.velocity.y);
}
void pipirka(){
rb.AddForce (transform.up * 20f, ForceMode2D.Impulse);
if (facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
спасибо!
интересно)
а как эту систему на кнопки под андроид закинуть?
А какая разница между FixedUpdate() и Update()?
FixedUpdate() используется для физики. Так лучше делать для логики игры.
Update зависит от производительности устройства игрока. FixedUpdate не зависит. С ним легче работать, если тебе нужно прописать что-то, связанное с действием по времени, чтобы на всех устройствах с разной мощностью работало одинаково.
Спасибо тебе большое, очень сильно помог. Все понятно объяснил, ничего лишнего.
Бро, помоги пожалуйста у меня почему то персонаж имеет бесконечные прыжки
вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControler : MonoBehaviour
{
public float speed = 0.1f;
public float jumpForse;
public bool isGrouded;
public Transform groundCheck;
public float cheakRadius;
public LayerMask whatIsGround;
private Rigidbody2D rb;
private int extraJumps;
public int extraJumpsValue;
private void Start()
{
extraJumps = extraJumpsValue;
rb = GetComponent();
}
private void FixedUpdate()
{
isGrouded = Physics2D.OverlapCircle(groundCheck.position, cheakRadius, whatIsGround);
}
private void Update()
{
if(isGrouded == true)
{
extraJumps = extraJumpsValue;
}
transform.position += new Vector3(speed, 0, 0) * Input.GetAxis("Horizontal");
if (Input.GetKeyDown(KeyCode.Space))
{
rb.velocity = Vector2.up * jumpForse;
extraJumps--;
}else if (Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && isGrouded == true)
{
rb.velocity = Vector2.up * jumpForse;
}
}
}
Очень понятный и годный ролик, спасибо!
У меня код идентичный, но игрок разгоняется слишком долго до максимальной скорости, с использованием GetAxisRaw все происхожит слишком резко, при использовании не скорости, а просто изменении позиции игрок при столкновении со стеной начинает "пытаться" в нее входить и его начинает дергать.
С материалом тоже не все ясно, поставил два коллайдера, на тело и ноги, на теле материал без трения, чтобы он не цеплялся за стены, а на ногах трение 3, чтобы он тормозил быстрее, чем ускорялся, пытался через Linear Drag, но от него страдает прыжок, при прыжке на другую платформу, нижний коллайдер задевает платформу и из-за материала остается там. Вопрос - как это исправить? Заранее извини за беспокойство и спасибо
Я всё написал , но void update объявлен но не используется , и через это видимо у меня и не прыгает , как это решить?)))
Очень полезно! почти все работает, кроме ограничения количества прыжков.
А как на андроид управление сделать?
у меня ошибку выдаёт 'Input' does not contain a definition for 'GetCeyDown', что делать!
Написать правильно... Не существует GetCeyDown, существует GetKeyDown
О, невнимательность: у меня было GetkeyDown
самые лучшие рус. уроки) англ очень сложно смотреть, так чтобы и субтитры читать и успевать кодить, а не ставить на паузу каждые 5 сек) спасибо тебе, с меня лайк и подписка
Как в 3d сделать чтоб персонаж не цеплялся за обьекты в прыжке?
Почему то иногда после прыжка проваливается сквозь платформу? Что посоветуете?
Сделать у платформы boxcolider чуть побольше
Не понимаю почему такой офигенный канал имеет столько подписчиков?😟 Спасибо тебе большое за то, что делаешь такие видеоуроки 👍👍👍 Благодаря им мой персонаж теперь может двигаться😂 но я делал все как на видео, но он не прыгает, только движется на право и налево. Не подскажешь пожалуйста как это исправить?
Привет.Помоги пожайлуста у меня проблема,хотя я написал всё идеально!!!У меня кароч когда я запускаю игру он прыгает определенное кол-во раз а потом хоть пробел прожми стоит как вкопаный почему??
чел у меня такая же проблема капец
не пойму че делать мне
@@badler6145 кинь скрипт я посмотрю и скажу.
И я кста давно все исправил.
А ты точно на платформе кказал слой ground?
Спасибо , тебе хорошо объяснил я даже все понял!
if(facingRight == false && moveInput > 0)
{
Flip();
}else(facingRight == true && moveInput < 0)
{
Flip();
}
почему у меня просит поставить в конце ";" в - else(facingRight == true && moveInput < 0)
по этому куску непонятно
@@graphicaldesign2776 я уже разобрался, но все равно спасибо
В чем проблема? У ьуня ошибка компиляции кога я сую этот скрипт в перса
скрипт таков
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviorScript : MonoBehaviour
{
public float speed;
public float jumpForse;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask whatIsGround;
private int extraJumps;
public int extraJumpsValue;
private void Start()
{
extraJumps = extraJumpsValue;
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if (facingRight == true && moveInput > 0)
{
Flip();
}
else if (facingRight == false && moveInput < 0)
{
Flip();
}
}
private void Update()
{
if (isGrounded == true)
{
extraJumps = extraJumpsValue;
}
if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0)
{
rb.velocity = Vector2.up * jumpForse;
extraJumps--;
}
else if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps == 0 && isGrounded == true)
{
rb.velocity = Vector2.up * jumpForse;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
Здравствуйте, отличные ролики ! Назрел вопрос, private и public , это модификаторы доступа. Где-то я читал , что если не ставить модификатор то он автоматически private, тогда зачем вы вручную ставите?) ( "private float moveInput", "private void Start", и т.п.)
Чтоб зритель это видел.
Подскажите пожалуйста. У меня jump не работает, а в функции ExtraJumpValue я могу указать сколько всего прыжков может совершить герой, как решить проблему подскажите пожалуйста
Как именно не работает? Что пишет консоль? Как проверял работу проекта?
@@graphicaldesign2776, нет, все работает просто если я установлю jump 10, a
ExtraJumpValue 0, то он не будет прыгать.
Примерный вид
Speed 10
Jump 10
......
....
ExtraJumpValue 0
Он не прыгает,но если я напишу
Speed 10
Jump 10
....
.....
ExtraJumpValue 1
То персонаж прыгает 1 раз
Visual Studio выдает ошибку мол, FindPlayer не известен в данном контексте и тоже самое с playerisLeft как это чиниться?
проверь название скрипта и название в скрипте
а есть такой же урок только с анимацией?
У меня во время первого прыжка он отнимает единицу от extraJumps, не успев оторваться от земли (как я думаю) тут же прибавляет единицу к extraJumps, в итоге он прыгает два раза в воздухе. Кто нибудь знает как это пофиксить?
значит какая-то ошибка в скрипте
а почему у меня всегда
Is Grounded = true
Спасибо за полезный урок 👍
Есть ещё вопрос один , а как поставить прыжок не на клавишу , а на кнопку на экране ( для мобилок ) ?
ruclips.net/video/PfL0h0Savss/видео.html
вот тут я показывал как сделать на мобилке и движение и прыжки)
Спасибо все доходчиво и понятно!!!!
Помогитеееее пж, короче я всеее сделал как надо прям всё! А он во первых не падает ну типо где его ставишь там и остается в воздухе во вторых он не идет направо или налево а если я нажму вверх(прыжок) он просто взлетает наверх и летит без конца! помогиииииииииииите!
на нём есть Rigidbody2D?
А что делать если в риджид боди нет материала? Только в бокс коллайдере
Assets\hero.cs(51,13): error CS0103: The name 'Flip' does not exist in the current context
Исправляйте.
Здравствуйте. Есть один вопрос, а как сделать движение персонажа в одну сторону бесконечно ?
в void update писать transform.Translate(0,0,0); - где нули подставляете значение , конечно ответ через 7 месяцев по идеи не нужен , но всё же
Помогите пожалуйста. С помощью этого видео я хотел сделать ограничение в количестве прыжков у персонажа. Всё написал, включаю игру, прыгаю. Всё классно, но есть проблема, персонаж прыгает, а дальше отказывается. Что не так?
А мне как знать, что не так? Не видя проекта, нереально сказать. Накосячить мог где угодно.
Graphical Design уже починил просто все переписав с начала
всем привет делаю под копирку как на видео но мне дает ошибку в rb и moveInput! я хз че делать бесит, все зделал также но визде ошибки
кароче я хер знает, но я снес полностью проект, создал новый залил заново все спрайты переписал скрипт и все заработало я не знаю в чем проблема была!
Слушайте, а как добавить анимацию к кубу который прыгает?
На его канале уже есть тема по поводу анимации. Но там не куб а просто как сделать анимацию
Привет, можешь подсказать как в этом случае сделать так чтобы персонаж резко останавливался
Классные видео, продолжай снимать!
Можешь сказать пожалуйста какая у тебя версия visual studio? Я скачал 2019 с офф сайта, а она какая-то странная. И если не сложно ещё как ты сделал чёрным фон.
Работаю на официальной 2019.
Если ты про подсказки, то нужно зайти Edit -> Preferences - > External Tools -> Externel Script Editor (это нужно делать в юнити) потом перезапустить код (появятся в течение минуты после запуск кода). А что-бы зделать тёмную тему нужно зайти в Средаства -> Параметры -> Окружение -> Общие -> Цветовая тема.
@@stevemonalola5395 спасибо, но оказывается системный visual studio, который скачивается вместе с юнити у меня не запускался потому что я не выбрал его как редактор, поэтому скачал новый (херовый). И ещё раз спасибо, про темную тему я не знал, выглядит салидно:) .
После приземления счётчик прыжков не обнуляется..
Что делать?
Проверить код на ошибки
Проверил не получилось решил с помощью OnCollision2D Enter при наступлении на тег Ground выставлять isGround true
если сделать все как в видео, то все должно работать
@@graphicaldesign2776 и тем не менее не работает.
значит что-то делаете не так
а как сделать так чтоб он не крутился?
а уже не надо) я в инете нашёл
Прошу помощи! Все ровно работает автору огромное спасибо, я этом пока что полный 0 поэтому и возник вопрос... Как сделать чтоб персонаж прыгал по кнопке на экране?
Я создал кнопку и персонажа перетянул туда, теперь как я понимаю в скрипте надо вызвать функцию(может что то не так пишу, заранее сорян) чтоб она отображалась там.
Или как то можно в этом коде if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0) прописать вместо (KeyCode.UpArrow) что то другое? Например на кнопке сделать сделать что-то по типу ссылке и добавить ее вместо UpArrow.
Буду благодарен за помощь
Что делать если персонаж круглый и GroundCheck приклеплённый к нему тоже крутится?
на персонаже в rigidbody2d нажми на constrains и выбери пункт на Freeze Rotation. А если хочешь чтоб персонаж крутился это надо просто сделать анимацию и настроить
@@zuxccc Спасибо уже решил проблему.Прикрепил GroudCheck и персонажа к другому объекту не соединяя их и сделал так чтобы GroudCheck двигался за персонажем
Что делать? Я написал код прыжка, и при старте он улетает вверх.Я при этом даже не нажимал ничего.Подскажите пожалуйста
Исправлять ошибку. Видимо проблема с подбрасыванием персонажа.
@@graphicaldesign2776 у меня такая же проблема, ставлю JumpForce на 5(или вообще любое число) и начинает улетать в небо, соответственно ни какая кнопка не помогает. Может подскажите где код с подбрасыванием персонажа?
у меня не видит клавишу Space
У Вас есть уроки , в которых описано как сделать мобильное управление?
Не, пока еще такого контента к сожалению нет
@@graphicaldesign2776 будем ждать
у меня нет в отделе Nothing нет Ground что делать видио сто раз пересмотрел не нашел ошибку вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float speed;
public float jumpForse;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LeyerMask whatIsGround;
private void Start()
{
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2 (moveInput * speed, rb.velocity.y);
if(facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}
}
кто помогите
Так при чем тут скрипт... Слой надо создать Ground.
@@graphicaldesign2776 Спасибо
попробую
@@graphicaldesign2776 я сделал как вы говорили, но у меня все равно не запускается и в скрипте не появились новые вкладки что делать? Мне кажется ошибка в коде потому что в консоле пишется ошибка, вот сам код если можете и есть время проверьте пожалуйста, код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float speed;
public float jumpForce;
private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask whatIsGround;
private int extraJumps;
public int extraJumpsValue;
private void Start()
{
extraJumps = extraJumpsValue;
rb = GetComponent();
}
private void FixedUpdate()
{
isGrounded = Phisics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * speed rb.velocity.y);
if (facingRight == false && moveInput > 0)
{
Flip();
} else if (facingRight == true && moveInput < 0)
{
Flip();
}
}
private void Update()
{
if (isGrounded == true)
{
extraJumps == extraJumpsValue;
}
if (Input.GetKeyDown(KeyCode.UpAroow) && extraJumps > 0)
{
rb.velocity == Vector2.up * jumpForce;
extraJumps--;
}else if (Input.GetKeyDown(KeyCode.UpAroow) && extraJumps == 0 && isGrounded == true)
{
rb.velocity = Vector2.up * jumpForce;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale=Scaler;
}
}
перепровирял три четыри раза не смог найти ошибки, или я просто невнимателен:(
Наверное, никто не ответит, но всё равно опишу здесь свою проблему.
Всё получилось вроде, только не возобновляется количество доступных прыжков. Инструкции следовал на 100%, код идеально совпадает, я проверял. В чём может быть дело?
Я понял в чём ошибка. Просто не поместил нужные объекты в whatisground
@@drakoronus Отлично)
UnassignedReferenceException: The variable groundCheck of PlayerControll has not been assigned.
You probably need to assign the groundCheck variable of the PlayerControll script in the inspector.
UnityEngine.Transform.get_position () in :0
PlayerControll.FixedUpdate () (at Assets/PlayerControll.cs:24)
Как решить эту проблему? Персонаж просто не прыгает. Двигается, но не прыгает
Топ урок
У меня ничего не работает, почему?
1. как импортировать в юнити В принципе любую картинку? Я когда пытаюсь пихнуть она просто не пихается...
попробуй через кнопку импорт либо напрямую в асетах папку создай и туда уже
Привет, а как сделать, чтобы персонаж не мог отпрыгивать от стен. И когда персонаж в воздухе около стены, есть ощущение, что гравитация медленнее работает, даже с фиксом физического материала.
Для того чтоб он не отпрыгивал от стен, радиус окружности надо уменьшить, чтоб эта окружность не воспринимала стену как пол. А для того чтоб не замедлялась гравитация, может помочь увеличение коллайдера
Или же на стену не ставить тег ground))
было бы круто если бы ты оставил ссылку на готовый код,а то я уже 3й раз пишу но не выходит
Достаточно один раз написать внимательно.
я уже понял ошибку)
я забывал сохранять изменения
Подскажите что уже только не пробовал.
Суть в том что у персонажа бесконечные прыжки.
Код идентичен (проверял многократно) всё вроде по видео сделал.
Может есть варианты в чём может быть проблема!?
так тут же не только код важен
Надо чтоб земля была на слое ground
Чтоб groundcheck был внизу персонажа
чтоб радиус был достаточный для считывания информации
@@graphicaldesign2776 Я понимаю я же говорю что всё сделал по видео но уже битые 2 часа не могу осознать проблему
грустно
@@graphicaldesign2776 очень
@@graphicaldesign2776 разве что у меня не просто спрайт с колайдером а (Tilemap) с (TilemapColider 2d)
Спасибо за объяснение