Как сделать прыжок в юнити 3д?

  Переглядів 7,989

GameTech

GameTech

2 роки тому

Показываю и рассказываю про три способа как сделать прыжок в юнити 3д.

КОМЕНТАРІ: 33
@GameTech3
@GameTech3 Рік тому
Скрипт прыжка: using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class PlayerJump : MonoBehaviour { private Rigidbody _rigidbody; private Animator _animator; [SerializeField] private float _speed; private void Start() { _rigidbody = GetComponent(); _animator = GetComponent(); } private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { TransformJump(); } } private void RigidbodyJump() { _rigidbody.AddForce(Vector3.up * _speed, ForceMode.VelocityChange); } private void AnimationJump() { _animator.SetTrigger("Jump"); } private void TransformJump() { transform.position += new Vector3(0, 5, 0); } }
@TroitsaAnimation
@TroitsaAnimation Рік тому
огромное тебе спасибо
@Olverer
@Olverer Рік тому
а для телефона как зделать ц
@Tanjiro_demon_king923
@Tanjiro_demon_king923 10 місяців тому
СПБ дружыще очень помог!! 👍👍👍👍
@altrogames5263
@altrogames5263 2 роки тому
Годнота подъехала👍
@GameTech3
@GameTech3 2 роки тому
)
@Milash001
@Milash001 2 роки тому
Спасибо за очередной урок! Лайк и коммент для продвижения видео!😁
@GameTech3
@GameTech3 2 роки тому
Рад был Помочь
@user-ce3wb5df2d
@user-ce3wb5df2d 2 роки тому
Проще показывать пример кода на примере игры. Завести переменную life, damage. Функция и методы для лечения и урона. Сделать полноценный платформер. Позже создание класса персонаж и тд. Голый код сложно воспринимается. Жду новых видосов)
@GameTech3
@GameTech3 2 роки тому
Хорошо,я это учту)
@kirigayakadzuto1462
@kirigayakadzuto1462 Рік тому
Топовый контент, не думал сделать курс по юнити? На примере того, как ты игру создаешь, было бы здорово, я только шарп пока учу по Чистый код и курсу Сакутина, хотелось бы увидеть как люди игры создают в лайве
@GameTech3
@GameTech3 Рік тому
Курса точно не будет. Уроки скорее всего тоже, не хочу распыляться на обучение и заливку видосов. О, я тоже чистый код читал, хорошая книга
@user-so1nh5un4x
@user-so1nh5un4x 3 місяці тому
Очень сильно помог , спасибо большое
@goldbocman8154
@goldbocman8154 2 роки тому
А какой прыжок использовать лучше всего?
@GameTech3
@GameTech3 2 роки тому
Лучше использовать такой который вписывается в твою конкретную игру.По идее можно использовать любой.Например если тебе нужен контроль над прыжком то лучше использовать Который с анимацией.А если просто нужен плавный прыжок то можно использовать ригидбоди.Если же нужен очень резкий и динамичный прыжок то нужно использовать Transform.
@wandererprod
@wandererprod Рік тому
Если постоянно нажимаешь пробел персонаж улетает в небо - можно ли это как-то исправить?)
@GameTech3
@GameTech3 Рік тому
Можно.Напиши условие что ты стоишь на земле. Правда тогда придется написать проверку того что ты на земле - есть много способов но я обычно пользуюсь рейкастом. И тогда когда рейкаст соприкасается делай isGrounded = true иначе false. И потом делай if(isGrounded) "Код прыжка";
@wandererprod
@wandererprod Рік тому
​@@GameTech3 А можете пожалуйста правильно добавить это сюда? using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class PlayerJump : MonoBehaviour { private Rigidbody _rigidbody; private Animator _animator; [SerializeField] private float _speed; private void Start() { _rigidbody = GetComponent(); _animator = GetComponent(); } private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { TransformJump(); } } private void RigidbodyJump() { _rigidbody.AddForce(Vector3.up * _speed, ForceMode.VelocityChange); } private void AnimationJump() { _animator.SetTrigger("Jump"); } private void TransformJump() { transform.position += new Vector3(0, 5, 0); } }
@GameTech3
@GameTech3 Рік тому
Пожалуйста) using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class PlayerJump : MonoBehaviour { private Rigidbody _rigidbody; private Animator _animator; [SerializeField] private float _speed; private bool _isGrounded; private void Start() { _rigidbody = GetComponent(); _animator = GetComponent(); } private void Update() { if (_isGrounded) { if (Input.GetKeyDown(KeyCode.Space)) { TransformJump(); } } } private void FixedUpdate() { if (Physics.Raycast(transform.position, Vector3.down, transform.localScale.y)) _isGrounded = true; else _isGrounded = false; } private void RigidbodyJump() { _rigidbody.AddForce(Vector3.up * _speed, ForceMode.VelocityChange); } private void AnimationJump() { _animator.SetTrigger("Jump"); } private void TransformJump() { transform.position += new Vector3(0, 5, 0); }
@wandererprod
@wandererprod Рік тому
@GameTech Спасибо, но с этими параметрами прыжок теперь почему-то вообще перестал работать не знаете в чем может быть причина? 😕
@GameTech3
@GameTech3 Рік тому
Тут уже конкретно проект нужно смотреть. Я же не знаю что у тебя там. Может быть очень много причин, например скорость прыжка нулевая, или объект повернут так что рейкаст стреляет вбок а там пустота. напиши Debug.Drawray(transform.position, Vector3.down,Color.green, transform.localScale.y);(Оно выведет луч в сцену) Это должно помочь.
@Suharikponos1257
@Suharikponos1257 2 роки тому
скинь ссылку на уроки по разработке игр где ты научился пж
@GameTech3
@GameTech3 2 роки тому
Ну в целом я учился сам первые 3 месяца, но потом мне очень сильно помог курс eccentricgames.tilda.ws/
@ferrumgamesfeg5052
@ferrumgamesfeg5052 Рік тому
ААААААААААА мои глаза! Нельзя ставить GetComponent в Update без особой надобности! Лучше ставить его в Start()
@GameTech3
@GameTech3 Рік тому
Если бы ты смотрел внимательно то заметил бы что я его туда и Переместил), хотя вначале и написал в Update().
@ferrumgamesfeg5052
@ferrumgamesfeg5052 Рік тому
@@GameTech3 Извеняюсь, но почему вы не добавили его сюда сразу?
@GameTech3
@GameTech3 Рік тому
Точно не помню. Это было 6 месяцев назад. Возможно не заметил что это в апдейте либо еще что либо.
@RuDLeX
@RuDLeX Рік тому
А можно скрипты?
@GameTech3
@GameTech3 Рік тому
Ок,как нибудь выложу.Но по сути здесь всё очень просто и можно и по видео сделать.
@GameTech3
@GameTech3 Рік тому
Не разобрался как выложить скрипт в инет, так что если это ещё актуально кинул просто текстом к видео .
@user-lm3gl9ci5g
@user-lm3gl9ci5g 9 місяців тому
для телефона public float speed = 12f; public float jumpHeight = 3f; private Rigidbody rb; public Transform groundCheck; public float groundDistance; public LayerMask groundMask; public Joystick jos; bool isGround; void Start() { rb = GetComponent(); } void Update() { isGround = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask); float x = jos.Horizontal; float z = jos.Vertical; rb.velocity = new Vector3(x, rb.velocity.y, z) * speed; } public void Jump() { if (isGround == true) { rb.AddForce(Vector3.up * jumpHeight, ForceMode.VelocityChange); } }
@rogaus
@rogaus 2 роки тому
Где видео
@GameTech3
@GameTech3 2 роки тому
Сейчас участвую в геймджеме.Думаю будет видео как это все закончится.
How to Jump in Unity - Unity3D Fundamentals
10:15
Deniz Simsek
Переглядів 137 тис.
Спектакль для окупантів та ждунів 🤯
00:47
Радіо Байрактар
Переглядів 527 тис.
ПЕРЕДВИЖЕНИЕ ОТ ПЕРВОГО ЛИЦА В Unity
22:12
maxvell-game developer
Переглядів 21 тис.
Как сделать прыжок в unity 2021
28:42
Maximple
Переглядів 12 тис.
[UNITY3D] 4 способа задать движение объекту
10:02
ANDROIDHELPER [UNITY3D and more]
Переглядів 181 тис.
😱SAVE THEM FROM THE EVIL GIANT!😭💞🥺
0:22
DUDON
Переглядів 1,3 млн