ПРОСТОЕ УПРАВЛЕНИЕ ПЕРСОНАЖЕМ В UNITY / ХОДЬБА, БЕГ, ПРЫЖОК, ПРИСЕДАНИЕ
HTML-код
- Опубликовано: 28 сен 2024
- Как сделать управление персонажем в Unity? Управление персонажем в Unity. Простой CharacterController в Unity. Как сделать простой контроллер персонажем? Как сделать перемещение в Unity? Как сделать прыжок в Unity? Как сделать приседание в Unity?
Как сделать игру на Unity? Простое управление игроком на Unity.
Проект: github.com/Sai...
all compiler errors have to be fixed before you can enter playmode unity как исправить
Спасибо очень помог но хочу подметить что ты мог использовать просто rigedbody он автоматический добовляет гравитацию
Добрый день!А можете куда-то полный код написать?просто сколько я не делал в юнити пишет ошибки,и можете зделать пожалуйста тутор как сделать так чтобы ты смог писать в визуал студио на языке си шарп?просто я хочу начать разбираться,и не выходит с визула студио,типу что там на начале выбирать чтобы си шарп был язык?помогите если сможете пожалуйста
Если все еще интересно, то советую поставить vs code, скачать расширения прямо внутри него на c# и unity. Затем просто в настройках unity выбрать редактор кода vs code и будем вам счастье)
что делать если у меня ничего не работает, я даже камерой покрутить не могу((( пишет MissingComponentExeption: There is no 'CharacterController' attached to the "Player" game object, but a script is trying to access it.
Нету компонента Character Control, ты наверное забыл его добавить
@@vg-vovagatova289 а как добавить его? я пишу в скрипте private CharacterController _characterController; и ничего не происходит
А почему ригидбади не воспользовался?
спасибо вам большое за такой тутор
Всегда пожалуйста)
Спс за тутор! Очень помог :).
спасіба тобі я писав код тіки для 2D ігр но побачивши цей код а прозрів і подлявся на новий уровень узнав багато нового і цікавого шо можна було зробить свій код чистим спасіба тобі велике
Спасибо большое, очень помог. Но есть вопросик, как сделать скорость присяда меньше чем у ходьбы?
Уменьшить перемещение самой модели а тоесть сделать скрипт чтоб при нажатии кнопки контр персонаж по кординатам шел медленнее
Assets\Player.cs(35,8): error CS8803: Top-level statements must precede namespace and type declarations. Выскакивает такая ошибка,не подскажите как с ней быть?
фрагмент кода из вашего урока
- private void FixedUpdate()
{
Walk(_walkDirection);
}
}
private void Walk(Vector3 direction)
{
_characterController.Move(direction * _speedWalk * Time.fixeDeltaTime);
возможно у тебя метод вне класса
красным что-то подчёркнуто?
У меня такое-же
А как сделать что бы приседание изменяло скорость ходьбы вместе с бегом?
Когда я добавляю:
_speedwalk = canSit ? _sitSpeed : _speed;
бег перестает работать
я тоже с этой проблемой столкнулся, но смог её решить. Тебе нужно просто _speed поменять на _speedwalk и тогда заработает
красава, все понятно, ну в след раз по активнее и без стоп слов
А ето код написанный на с#?просто я точь в точь его переписал а он не рвботает
Spasibo ogromnoe love you
а как сделать так что бы когда прыгал на стенку немного повёрнутую то ты как бы скользил а не как человек паук лазил по ней с помощью пробела
Тут уже надо математику включать, в двух словах нельзя сказать
@@SaintDeveloperGames сделай видео пж
Привет, переписал код , все окей, перс ходит. Но когда я добавляю маус лук персонаж пропадает и я верчу камерой по пустой карте. В чем может быть проблем?
Это вид от первого лица)
Если нужен вид от третьего лица, то там немножко по-другому надо делать
@@SaintDeveloperGames Понял, спасибо)
Хоть ролику и год но скажи как ты сделал движение камерой в ролике ты не показал этот скрипт MouseLook
Привет, он есть в описании, там все скрипты)
Большое спасибт
у меня ничего не получилось(
Что делать когда перетаскивю player (script) но там нету поля для изменения скорости и персонаж просто сооит
возможно поле приватное просто, добавь сериализацию или сделай публичным, но лучше первое
какая версия visual studio?
2019
давай больше видео )
А что в Speed?lalk
Переписал код как у тебя персонаж не прыгает почему то
может что-то с гравитацией?
Ребят помогите пожалуйста. Все сделал как на видео. Но персонаж не ходит. (Скачал скрипт из видео) И ничего не двигается просто стоит. Что делать?
CharacterController висит на персонаже?
@@SaintDeveloperGames Да, может пошли в дс, обсудим?
@@juniorprogrammist в тг можешь написать @mr_piper1
Привет, а в какой программе записываешь код? А то я писал в "visual studio code". И мне выдаёт ошибку
Привет, лучше использовать просто Visual Studio
Visual Studio code подходит больше для веб
@@SaintDeveloperGames а его где-то в определенном месте скачивать? Или просто с инета можно?
@@sly9271 можно с официального сайта, там есть бесплатная версия, у меня стоит 2019, но вроде бы можно и 2022 к юнити подвязать, но я этим не занимался. Помимо обычного пакета установки, тебе нужно дополнительно выбрать пакет для юнити. А в юнити соответственно выбрать редактор VS 2019
5:55
2:04
не получается :(
Что именно?)
привіт дяку що допоміг; шкода що у тебе так мало підписників за такі старання. доречі у мене тіло ходить чомусь окремо від камери а камера лише крутиться по горизонталі
Лучше по-русски)
Кто может скопировать и вставить код на ходьбу чтоби не переписовать
Это легко) ctrl + C, ctrl + V
код по ссылке в описании
Просто лень
кхм год прошел почти , с випуска , но если заметишь ... !!! короче я не понимаю как зделать чтоб персонаж при физике не падал под текстури !!! ... да .. вот так ... никак не пойму , раз работа зделана по твоему шаблону , то интересно узнать как у тебя персонаж не проваливается ... , и если делаешь такие подробние уроки , то чтоб и чайникам било понятно делай все с начала , бо у тебя куча заготовок , и попробуй пойми что ти там делал ...
а в общем за урок спасибо , впервие персонаж задвигался по нормальному ... более мение)
Привет, для новичков лучше идти в разработку 2д, а так нужны коллайдеры, чтобы игрок не проваливался. К слову о новичках, я собираюсь делать мини курс по разработке кликера с домашними заданиями. Для старта думаю самое то
@@SaintDeveloperGames ну 2д конечно тоже интересно , но 3д щас более актуально , вот ...
на щет колайдеров , добавляю их и на Plane и на Terarian и на куб ( соответствующие к данному обьекту), даже на капсулу персонажа , а он проваливается, но ето только когда гравитация есть )
Rigbody как вариант гравитации можно использовать , но у тебя в коде все , и как по мне удобнее...
может писать что надо чтоб текстура била плотнее , или персонаж легче , бо по ощущениям гиря сквозь бумагу ...
и без етого не могу прижок и приседания проверить)
короче , если сможешь помочь , буду ждать)
@@PikSel-tf2vf я в видео использовал просто Кубы, если делал всё как в видео, то должно быть норм
@@SaintDeveloperGames ну в видко у тебя сразу била заготовка игровой локации ... того подробностей не знаю , но работа делана строго по видео ... разве ти токол в маус контролер чтото написал дополнительное
@@SaintDeveloperGames
"SDG
4 місяці тому
Возьми код из скрипта MouseLook, я кинул ссылку на проект в описании"
ну похоже я в правильном русле думаю , если нет поправь
Видео говно 999+ ошибок и не фига не работает
Извините видео ТОП это я дебил скрипт не правильно написал спасибо
Ток камера не каботает
MissingComponentException: There is no 'CharacterController' attached to the "Capsule" game object, but a script is trying to access it.
You probably need to add a CharacterController to the game object "Capsule". Or your script needs to check if the component is attached before using it.
UnityEngine.CharacterController.Move (UnityEngine.Vector3 motion) (at :0)
Player.Walk (UnityEngine.Vector3 direction) (at Assets/Player.cs:41)
Player.FixedUpdate () (at Assets/Player.cs:35)
Привет помоги пожалуйста не понимаю что мне сделать надо
у тебя на персонаже не висит CharacterController
@@SaintDeveloperGames а как его повесить?
@@LYSTER__ справа в поиске нужно написать CharacterController и выбрать его
@@SaintDeveloperGames спасибо ❤️🔥
@@LYSTER__ хех, да не за что) у меня кстати новый видос вышел!
Привет можешь пириписать код потому-что у меня тупо не получается я уже пириписавал 3 раза
Неуч ты не правильно пишешь конечно ниче не получится 😂😂
MissingComponentException: There is no 'CharacterController' attached to the "Capsule" game object, but a script is trying to access it.
You probably need to add a CharacterController to the game object "Capsule". Or your script needs to check if the component is attached before using it.
UnityEngine.Object+MarshalledUnityObject.ThrowNullExceptionObjectImpl (System.Object obj) (at :0)
UnityEngine.CharacterController.set_height (System.Single value) (at :0)
Player.Sit (System.Boolean canSit) (at Assets/Scripts/Player.cs:65)
Player.Update () (at Assets/Scripts/Player.cs:27) Я не знаю что мне делать подскажи пожайлуста
Character Controller отсутствует
эт что?
@@SaintDeveloperGames
Я не шарю за скрипты можно тутор@@SaintDeveloperGames
ну тут одним тутором не обойдёшься, есть в планах сделать курс по созданию кликера для начинающих, но сейчас категорически мало времени, но зачатки есть. В планах выпустить курс на степике@@YT_HILL
это компонент@@YT_HILL
3:00
твой скрипт юзаю во первых где-то в пизде появилась копия моей капуслы я ее переташил по кордам в мою капусулу вроде перестал падать идут прямо a d работают как надо поворачиваю на право у меня w s право лево a d прямо назад
Что делать если камера поварачиваеться только вверх и вниз
Хороший код, спасибо большое!
пожалуйста)
@@SaintDeveloperGames о боже спасибо тебе твои родители должны
жить вечно в
@@Калинин-м4л хехе, всегда пожалуйста)
Большое спасибо за туториал, код имба!
что делать если не получается?
спасибо, гайд просто топ
ошибку error cs1513 постоянно выдает(
Это мне ни о чем не говорит)
@@SaintDeveloperGames я уже нашел ошибку и испоавил
Что именно в проэкте копировать и всавлять
Почему у меня не работает бег, когда нажимаю шифт он останавливается и вообще не двигается ? Скажите пожалуйста🙏🙏🙏
Привет, скрипт MousLook повесил?
Потому что ты в юнити не поставил значение run
У меня возникла проблема прошу помощи, я запустил проект ходить могу влево в прво прямо назад а мышкой двигаю но екран не двигается.
а mouselook делал?
Объясни что это?
@@Meyssan807 у меня там ещё скрипт есть для движения камеры, он так называется, в описании ссылка на код есть
А можно как-то вместо этой капсулы добавить модель игрока с анимацией?
Да
Сделай анимацию в том же юнити но перед этим сделай части тела что бы можно было что то анимировать
Можно но это в 3 раза сложнее
@@PolitWolfex Кстати, если ты шаришь в создании игр, я хотел бы тебе вопрос один задать, в личку напишу, ответь тут если прочитал
ПОМОГИТЕ ПОЖАЛУЙСТА как подключить правильно анимацию бега и когда персонаж просто стоит.
ruclips.net/video/2o3D9RlBeJE/видео.htmlsi=TWGZNk18xEdvmpv7
Привет! Класный тутор, но можешь подсказать как поставить свою модельку персонажа вместо классического капсуля так чтобы камера эту модельку не видела? А то когда я меняю модельку персонажа на свою то она частично перекрывает камеру. Надеюсь норм объяснил)
Привет, есть несколько вариантов, поменять расположение камеры, уменьшить модельку.
Измени положение камеры или удали голову
Привет, что делать если при движении мышкой перс начинает перемещаться по карте, даже через текстуры, а не просто поворачиваться?
Значит ты используешь не rotation, а меняешь позицию перса
Возьми код из скрипта MouseLook, я кинул ссылку на проект в описании
@@SaintDeveloperGames Привет, заработало, спасибо
@@langstat ой, хотел другому челу ответить) ну это хорошо, что заработало
Почему velocity.y = Input.GetAx
is("Vertical") * movementSpeed * Time.deltaTime; не работает когда стоит первой и так же с горизонтальной осью? Не надо, пожалуйста, писать про ошибки написания, проверил, и не раз
Слушай, я правильно понимаю, что у тебя велосити Y равняется нажатым A или D * на скорость* время? Тебе разве не будет возвращать велосити приближенным к 0. Я если что первый день с этим кодом работаю, поэтому возможно что-то не понимаю
Возможно стоит изменить на velocity.z
почему я могу двигать камерой только вверх и вниз?
Проверь правильно ли ты указал оси
У меня такое же хотя я скопировал скрипт у тебя из проэкта
@@ДэнисЯмакачисиявич нужен код, так сложно сказать
Такая же ситуация
7:26 а кто его знает?
Иисус
Спасибо😇
вставил твой код, не работает нихрена
может ты Character Controller не повесил?
@@SaintDeveloperGames да вообще не понятно откуда у тебя на гитхабе мета-копии файлов маусконтроллер и плеерконтроллера
@@SaintDeveloperGames я все поставил. Слушай, можешь пожалуйста записать ролик, как ты вставляешь готовые свои скрипты в проект с гитхаба в сишарп файлы?
@@KishmishbezKostey ты можешь просто создать два скрипта и взять код из моих и всё
@@KishmishbezKostey в смысле, как проект на гитхабе обновлять или что?
Почему бывают дёргания камеры иногда? с чем это связано?
У тебя вид от первого лица или от третьего?
@@SaintDeveloperGames от первого, я попробовал Rotate по X заменить на кватернион, но проблема осталась, не пойму, типо бывает бегу камерой осматриваюсь и она резко дëрнется
@@cooldude8066то есть такое иногда происходит? Если да, то попробуй сбилдить проект и проверить, мб это юнити лагает
Как поворачивать?
Смотря что и как ты хочешь поворачивать)
сделал как вы, но почему то у меня управление реверсивное.
Привет, проверь значения x и z, возможно, ты x присвоил vertical, а z - horizontal
@@SaintDeveloperGames Ок. Может и вправду ошибся, спасибо)
Проверил, вроде все норм, может из-за того что у меня версия Юнити 2019 года не подходит ваш код? Если так, то извините за беспокойство.
@@Wetus0 не, скорее всего что-то не так написал. Нужен скрин или закинь в облако скрипт и ссылку кинь, я чекну
Да ладно уже, вы все равно помогли другим, может я где-то накасячил. С кем не бывает.
спс
Всегда пожалуйста)
Можешь пожалуйста текстом скрипт кинуть)
@@BazzyNet да, чуть позже докину
@@SaintDeveloperGames спасибо)
@@BazzyNet залил на гитхаб, чекни описание. P. S. не забудь подписаться на канал)
меленький ньюанс метод move чарайтер контролера работает точно также как метод транслейт трансформа то есть он не задействует физику движка посему загружать фиксед апдэйт нет никакого смысла ровно наоборот если в фиксед апдейт напихаете простые математические функции когда будете использовать именно физик функции движка такие как адд форсе и адд тогуе у вас может возникнуть рассинхронизация в физике движка и графика начнет подтормаживать сильных лаг видно не будет но фпс может сильно просесть это можно скорректировать в настройках проекта там есть где то галочка синхронизации физики и ее тайминг цикла но лучже заранее определиться как вы будете писать игру используя физику движка или саостоятельно прпописывая через математику и тригонометрию все функции движения и взаимодействия объектов так мне даже больше нравиться поле для творчества сильно расширяется и все эти простые функции не использующие возможности физики движка лучше прописывать в обычном апдейт а фиксед апдейт лучше вообще не трогать иначе однозначно возникнет ситуация когда на выходе как мой ребенок говорит игра не оптимизированна лагать и крашится может и не будет но работать будет медленно высокого фпс не добьетесь особенно с раширенным графическим выводом пайпелайном извиняюсь что название функций и методов по русски писал кто уже опытный более менее надеюсь поймут о чем резюме коротко смешивать физические методы и прямые назовем их так в принципе можно только надо следить фиксед апдейт работает вроде между циклами простого апдейт а он в свою очередь работает со скоростью установленного в настройках проекта как карутюн поо времени посему физ функции лучше вызывать после собственных в апдейте да впринципе поймете когда запустите свое творение если будут тормоза ремте отключайте по очереди свои функции и смотрите результат где тормоза призывать писать только на физике движка через силу и моменты не буду ибо сам много писал обычными методами попиксельное движение через транслейт с физикой правда можно добиться очень интересных поведений объекта особенно при столкновении и движении например транспорта машинки однозначно писать через крутящий момент аддтогуе через транслейт намного проще пользоваться векторами и вообще направлением хотя желательно знать математеку и геометрию хотя бы на уровне школьной программы так как зачастую расчет траекторий придется додумывать самому при использовании физики в случае не правильного расчета движения объект может легко сорваться в регдол это когда его будет мотать по экрану в чистом рандоме как отрекашетившую пулю . короче определитесь в начале создания как будете писать и по возможности не смешивайте эти два способа надеюсь люди кто хоть немноо знаком с основами юнити поймут что я тут накалякал если что переспрашивайте по возможности постараюсь ответить в юнити есть как минимум два способа заставить объект двигаться с помощью фстроенных в движок функций эмулирующих физическое поведение объекта как в реале подчиняющеся законам физики которое здесь просто и называют физикой а так же можно самостоятельно описать движение объекта минуя физ функции движка тоесть вы как бы сами будете описывать модель поведения объекта моделируя нужное вам движение и взаимодействие с окружающей средой плюсы и минусы того или иного способа описывать не буду они есть и там и там в первом случае можно добиться очень интересного поведения объекта во витором случае вы сами полностью контролируете объект отскоки при столкновениях в певом случае возможно будут более реалистичны так как учитывать будут и скорость и гравитацию во втором случае пончтно самое простое решение поменять вектор на противоположный а вот гравитацию апример уже самому придется дописывать через пару лет кодинга на юнити для вас это будкут семечки . всем добра.
Кто знает почему я мой герой летит на вверх?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rb2D;
public Vector2 moveVector;
public float speed = 2f;
void Start()
{
rb2D = GetComponent();
}
void Update()
{
walk();
Jump();
}
void walk()
{
moveVector.x = Input.GetAxis("Horizontal");
rb2D.velocity = new Vector2(moveVector.x * speed, rb2D.velocity.y);
}
public float jumpForce = 7f;
void Jump()
{
if (Input.GetKeyDown(KeyCode.Space));
rb2D.velocity = new Vector2(rb2D.velocity.x, jumpForce);
if (Input.GetButtonDown("Jump"));//);
}
//rb.AddForce(Vector2.up * jumpForce);
}
привет, у тебя нет гравитации