Да я уже этим лет 5 занимаюсь с 12 лет )) Учился по видео в ютубе (в основном по англоязычным видео) и также у меня был предподователь по C# на 9 мясецев. Я уверен у тебя тоже получится всему этому научится👍
Привет бро) видео классные спасибо что сделал игру в таком стиле) Можешь ещё пожалуйста сделать возможность что бы персонаж мог присаживаться как little nightmare 1-2 ) Пожалуйста 🥺
Чтобы не заниматься дрочкой трансишенов в анимации можно использовать AnimationEvent. Создать эвент на нужном фрейме анимации и добавить ему функцию например "AddJumpForce" и прописать AddJumpForce в коде отдельным методом, в который уже запихнуть сам AddForce. Так прыжок выходит органичнее ведь вы сами выбираете момент в анимации, когда будет приложена сила. Это удобно применять не только для прыжков, вообще очень гибкая штука.
Привет! Отличное видео! Впервые смог сделать норм перса, но есть одна проблема. При нажатии на пробел, анимация выполняется, но сам перс не прыгает, т.е. не перемещается по вертикальной оси. Как можно это исправить?)
Привет, я сам только начал заниматься разработкой на Unity. И этот урок очень поучительный, спасибо).И да, хочу спросить, у тебя какие расширения скачанные в visio studio? Просто я все искал, так и не нашел, что бы код полностью не писать, а просто нажать enter)
using UnityEngine; using System.Collections; public class CharacterControllerScript : MonoBehaviour { //переменная для установки макс. скорости персонажа public float maxSpeed = 10f; //переменная для определения направления персонажа вправо/влево private bool isFacingRight = true; //ссылка на компонент анимаций private Animator anim; /// /// Начальная инициализация /// private void Start() { anim = GetComponent(); } /// /// Выполняем действия в методе FixedUpdate, т. к. в компоненте Animator персонажа /// выставлено значение Animate Physics = true и анимация синхронизируется с расчетами физики /// private void FixedUpdate() { //используем Input.GetAxis для оси Х. метод возвращает значение оси в пределах от -1 до 1. //при стандартных настройках проекта //-1 возвращается при нажатии на клавиатуре стрелки влево (или клавиши А), //1 возвращается при нажатии на клавиатуре стрелки вправо (или клавиши D) float move = Input.GetAxis("Horizontal"); //в компоненте анимаций изменяем значение параметра Speed на значение оси Х. //приэтом нам нужен модуль значения anim.SetFloat("Speed", Mathf.Abs(move)); //обращаемся к компоненту персонажа RigidBody2D. задаем ему скорость по оси Х, //равную значению оси Х умноженное на значение макс. скорости rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y); //если нажали клавишу для перемещения вправо, а персонаж направлен влево if(move > 0 && !isFacingRight) //отражаем персонажа вправо Flip(); //обратная ситуация. отражаем персонажа влево else if (move < 0 && isFacingRight) Flip(); } /// /// Метод для смены направления движения персонажа и его зеркального отражения /// private void Flip() { //меняем направление движения персонажа isFacingRight = !isFacingRight; //получаем размеры персонажа Vector3 theScale = transform.localScale; //зеркально отражаем персонажа по оси Х theScale.x *= -1; //задаем новый размер персонажа, равный старому, но зеркально отраженный transform.localScale = theScale; } }
Слушай, я понимаю что итак доставил тебе много хлопот. Но у меня есть одна просьба... Можешь сделать урок по тому как сделать в unity дверь, чтоб открывалась и закрывалась по нажатию кнопки, и чтоб при открытии, закрытии двери у игрока проигрывалась анимация рук типо он открывает или закрывает дверь (не обезательно сейчас, если сможешь то можно и потом) просто ты понятнее всех объесняешь материал. Поэтому я хотел чтобы именно ты сделал такой урок. Если не получится то ничего, ты итак для меня много чего сделал.
Все классно, но как сделать, чтобы персонаж не зависал в воздухе? Такое ощущение, что falling idle длится чуть дольше, чем хочется)) возникает ощущение, что перс парит какое-то время.
Привет! Возможно ты не убрал галочку Has exit time в Animator у этого State. Или зайди в твою анимацию (файл анимации) и там найди и поставь галочку в Bake into pose по оси Y. И в других анимациях прыжка тоже попробуй. Надеюсь что то из этого поможет👍
SOS! SOS! прива!! === выручи советом === сделал 3D игру в Unity, делаю билд (Android минималка 4.4, максималка 9) пишет Sucess.... но работает только! на новых андроидах... на всех устройствах 2016-2017-2018 вообще не запускается.... *ЧТО ДЕЛАТЬ?* пробовал билдить чисто мин/макс Android 5,1 === сборка до конца не доходит вылетает на этапе Grade... === получается 80% пользователей даже не увидят игру в google play
Понимаю что может уже поздно, не могу решить проблему. Ввёл все параметры, скрипт несколько раз переписал, видео раз 15 пересмотрел, но не помогает. Мой персонаж не может прыгать, GroundChecker стоит как надо + в консоли пишет следующее: "Jump clicked :)" (Сделал текст под себя) Не знаю в чем проблема, не могу решить 3-й день. Возможно это из-за того, что я весь PlayerController редактировал под себя, вот скрипт: using System.Collections; using System.Collections.Generic; using UnityEngine;
//ua-cam.com/users/Maximple public class PlayerController : MonoBehaviour { private Animator animator; private Rigidbody rigidbody; public float rotationSpeed = 10f; public float speed = 2f; public Transform groundCheckerTransform; public LayerMask notPlayerMask; public float jumpForce = 30f;
public GameObject cam; public GameObject maincam; public CharacterController characterController;
Vector3 move;
// Start is called before the first frame update void Start() { animator = GetComponent(); rigidbody = GetComponent(); }
// Update is called once per frame void Update() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); rigidbody.angularVelocity = Vector3.zero;
Тебе нужно поменять physics material на компоненте collider на такой материал на котором будет 0 friction в воздухе, а во время приземления он возвращался на другой physics material с 0.6 friction или другое число можно подставить. Можешь менять материал в зависимости от переменной inAir.
Молодчина Maximple. Продолжай в том же духе! Ты отлично все объясняешь.
Я неделю пытался разобраться с этим дебильным прыжком😫
Спасибо тебе большое!!!
Огромное спасибо тебе за скрипт. А то у меня чёт не получаломь его написать. И спасибо за уроки. Ты лучший! 💜💜💜
Спасибо чел,ты лучший,пусть у тебя будет 1млн подписчиков)
Даже неловко спросить *где ты всему этому учился и сколько времени потратил?* все четко и без воды = 100% ЛАЙК + ПОДПИСКА.
Да я уже этим лет 5 занимаюсь с 12 лет )) Учился по видео в ютубе (в основном по англоязычным видео) и также у меня был предподователь по C# на 9 мясецев. Я уверен у тебя тоже получится всему этому научится👍
Ты красавчик вообще. Крутой. Ты знаешь больше меня я честно
Ну что, Фух добил я этот урок💣 Спс за урок продолжай в том же духе, каких объяснений мало встретишь на просторах инета! Тем более бесплатно👍
Привет бро) видео классные спасибо что сделал игру в таком стиле) Можешь ещё пожалуйста сделать возможность что бы персонаж мог присаживаться как little nightmare 1-2 ) Пожалуйста 🥺
Спасибо за комментарий) Да, приседание и ходьба на корточках намечается где то в июле👍
@@Maximple хорошо буду ждать)
Круто, когда будет продолжение выживалки, крафт, постройки.
Следующее видео будет про крафт, так что скоро)
Круто я первый
😀👍
Лучший! Спасибо
Чтобы не заниматься дрочкой трансишенов в анимации можно использовать AnimationEvent. Создать эвент на нужном фрейме анимации и добавить ему функцию например "AddJumpForce" и прописать AddJumpForce в коде отдельным методом, в который уже запихнуть сам AddForce. Так прыжок выходит органичнее ведь вы сами выбираете момент в анимации, когда будет приложена сила.
Это удобно применять не только для прыжков, вообще очень гибкая штука.
Привет! Отличное видео! Впервые смог сделать норм перса, но есть одна проблема. При нажатии на пробел, анимация выполняется, но сам перс не прыгает, т.е. не перемещается по вертикальной оси. Как можно это исправить?)
когда юнити 3д будет меню одежда дом оружие карта задания машины и др
Привет, я сам только начал заниматься разработкой на Unity. И этот урок очень поучительный, спасибо).И да, хочу спросить, у тебя какие расширения скачанные в visio studio? Просто я все искал, так и не нашел, что бы код полностью не писать, а просто нажать enter)
надо в юнити настроить
Edit//Preferences//External Tools// и в External Script Editor поставить ту версию visual studio которую ты используешь
Помогите решить проблему , Мне пишет ошибку с Rigidbody , Что сделать ?
Можешь запилить видос чтобы он по кнопке садился и как вообще кнопки подключать или как мышь подключить для 3д игры
Приседание сделаю и ходьбу на корточках, но скорее всего уже где то в июле
Лучший. Будем ждать!))
using UnityEngine;
using System.Collections;
public class CharacterControllerScript : MonoBehaviour
{
//переменная для установки макс. скорости персонажа
public float maxSpeed = 10f;
//переменная для определения направления персонажа вправо/влево
private bool isFacingRight = true;
//ссылка на компонент анимаций
private Animator anim;
///
/// Начальная инициализация
///
private void Start()
{
anim = GetComponent();
}
///
/// Выполняем действия в методе FixedUpdate, т. к. в компоненте Animator персонажа
/// выставлено значение Animate Physics = true и анимация синхронизируется с расчетами физики
///
private void FixedUpdate()
{
//используем Input.GetAxis для оси Х. метод возвращает значение оси в пределах от -1 до 1.
//при стандартных настройках проекта
//-1 возвращается при нажатии на клавиатуре стрелки влево (или клавиши А),
//1 возвращается при нажатии на клавиатуре стрелки вправо (или клавиши D)
float move = Input.GetAxis("Horizontal");
//в компоненте анимаций изменяем значение параметра Speed на значение оси Х.
//приэтом нам нужен модуль значения
anim.SetFloat("Speed", Mathf.Abs(move));
//обращаемся к компоненту персонажа RigidBody2D. задаем ему скорость по оси Х,
//равную значению оси Х умноженное на значение макс. скорости
rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y);
//если нажали клавишу для перемещения вправо, а персонаж направлен влево
if(move > 0 && !isFacingRight)
//отражаем персонажа вправо
Flip();
//обратная ситуация. отражаем персонажа влево
else if (move < 0 && isFacingRight)
Flip();
}
///
/// Метод для смены направления движения персонажа и его зеркального отражения
///
private void Flip()
{
//меняем направление движения персонажа
isFacingRight = !isFacingRight;
//получаем размеры персонажа
Vector3 theScale = transform.localScale;
//зеркально отражаем персонажа по оси Х
theScale.x *= -1;
//задаем новый размер персонажа, равный старому, но зеркально отраженный
transform.localScale = theScale;
}
}
как сделать приседание и ползанье ?
Слушай, я понимаю что итак доставил тебе много хлопот. Но у меня есть одна просьба... Можешь сделать урок по тому как сделать в unity дверь, чтоб открывалась и закрывалась по нажатию кнопки, и чтоб при открытии, закрытии двери у игрока проигрывалась анимация рук типо он открывает или закрывает дверь (не обезательно сейчас, если сможешь то можно и потом) просто ты понятнее всех объесняешь материал. Поэтому я хотел чтобы именно ты сделал такой урок. Если не получится то ничего, ты итак для меня много чего сделал.
Могу такое записать) Сначала доделаю крафт, индикаторы и тп, а потом займемся и дверьми когда дело дойдет до системы строительства👍
@@Maximple Спасибо большое! Тебе нет равных!!! 💜♥️
@@Maximple Max а можно мне ему обьяснить или ты сам?
@@VAINTUBER0608 Привет) Я сам запишу - думаю многим будет полезно. Спасибо за предлагаемую помощь)
@@Maximple привет! Видел новый трейлер к subnatica bellow zero? Её тоже на стриме проходить будешь?
Здравствуйте, возникла проблема. Не могу рисовать текстуры поверх террейна (песок и тд.) Может кто нибудь помочь? версия 2020.3.5f1
Попробую создать новый проект и чы та сможеш рисовать
У тебя сколько текстур сейчас на терейне
@@viktormix6522 ну только одна текстура травы, деревья и немного цветов
Текстуру выбрал и нажал ? Ха
@@alisherzhambirbay6833 я все делал как он описывал в видео
Все классно, но как сделать, чтобы персонаж не зависал в воздухе? Такое ощущение, что falling idle длится чуть дольше, чем хочется)) возникает ощущение, что перс парит какое-то время.
Привет! Возможно ты не убрал галочку Has exit time в Animator у этого State. Или зайди в твою анимацию (файл анимации) и там найди и поставь галочку в Bake into pose по оси Y. И в других анимациях прыжка тоже попробуй. Надеюсь что то из этого поможет👍
SOS! SOS! прива!! === выручи советом === сделал 3D игру в Unity, делаю билд (Android минималка 4.4, максималка 9) пишет Sucess.... но работает только! на новых андроидах... на всех устройствах 2016-2017-2018 вообще не запускается.... *ЧТО ДЕЛАТЬ?* пробовал билдить чисто мин/макс Android 5,1 === сборка до конца не доходит вылетает на этапе Grade... === получается 80% пользователей даже не увидят игру в google play
привет, можешь пожайлуста сделать ходьбу на корточках?
Понимаю что может уже поздно, не могу решить проблему. Ввёл все параметры, скрипт несколько раз переписал, видео раз 15 пересмотрел, но не помогает. Мой персонаж не может прыгать, GroundChecker стоит как надо + в консоли пишет следующее: "Jump clicked :)" (Сделал текст под себя)
Не знаю в чем проблема, не могу решить 3-й день. Возможно это из-за того, что я весь PlayerController редактировал под себя, вот скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//ua-cam.com/users/Maximple
public class PlayerController : MonoBehaviour
{
private Animator animator;
private Rigidbody rigidbody;
public float rotationSpeed = 10f;
public float speed = 2f;
public Transform groundCheckerTransform;
public LayerMask notPlayerMask;
public float jumpForce = 30f;
public GameObject cam;
public GameObject maincam;
public CharacterController characterController;
Vector3 move;
// Start is called before the first frame update
void Start()
{
animator = GetComponent();
rigidbody = GetComponent();
}
// Update is called once per frame
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
rigidbody.angularVelocity = Vector3.zero;
move = transform.right * h + transform.forward * v;
characterController.Move(move * speed * Time.deltaTime);
if (move.magnitude > Mathf.Abs(0.05f))
{
}
animator.SetFloat("speed", Vector3.ClampMagnitude(move, 1).magnitude);
Vector3 moveDir = Vector3.ClampMagnitude(move, 1) * speed;
rigidbody.velocity = new Vector3(moveDir.x, rigidbody.velocity.y, moveDir.z);
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("Jump clicked :)");
Jump();
}
}
void Jump()
{
RaycastHit hit;
if (Physics.Raycast(groundCheckerTransform.position, Vector3.down, 0.2f, notPlayerMask))
{
rigidbody.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
else
{
Debug.Log("Did not find ground layer :(");
}
}
}
Всё, понял, rigidbody с charactercontroller связывать нельзя ,_,
@@karagunisЕсли не связывать, то у меня выдает ошибку :(
Я делаю через [SerializeField]
@@rainside7630 попробуй обратиться к чату GPT
поставил 0.2f но персонаж все еще прыгает не находясь на земле
когда прыгаешь он в стене застреваееееет, брат почини плиз
Помогите пж пишет что Оператор * невозможно применить к операнду типа Vector3 и Vector3 что делать? Помогите пж
Введите вместо второго вектора число
Привет, можешь обновить ссылку на скрипт?
Максимпл, а как сделать так чтобы персонаж не прилипал к стене?
Тебе нужно поменять physics material на компоненте collider на такой материал на котором будет 0 friction в воздухе, а во время приземления он возвращался на другой physics material с 0.6 friction или другое число можно подставить. Можешь менять материал в зависимости от переменной inAir.
боже чел, понял свою ошибку?
🤟