Mail.ru
Почта
Мой Мир
Одноклассники
ВКонтакте
Игры
Знакомства
Новости
Календарь
Облако
Заметки
Все проекты
Все проекты
выход
Регистрация
Вход
Категории
Все вопросы проекта
Компьютеры, Интернет
Темы для взрослых
Авто, Мото
Красота и Здоровье
Товары и Услуги
Бизнес, Финансы
Наука, Техника, Языки
Философия, Непознанное
Города и Страны
Образование
Фотография, Видеосъемка
Гороскопы, Магия, Гадания
Общество, Политика, СМИ
Юридическая консультация
Досуг, Развлечения
Путешествия, Туризм
Юмор
Еда, Кулинария
Работа, Карьера
О проектах Mail
Животные, Растения
Семья, Дом, Дети
Другое
Знакомства, Любовь, Отношения
Спорт
Золотой фонд
Искусство и Культура
Стиль, Мода, Звезды
Полный список
Спросить
Лидеры
Поиск по вопросам
Ответы Mail
Программирование
Android
C/C++
C#
iOS
Java
JavaScript
jQuery
SQL
Perl
PHP
Python
Веб-дизайн
Верстка, CSS, HTML, SVG
Системное администрирование
Другие языки и технологии
Вопросы - лидеры.
Пустая ошибка юнити 6
1 ставка
Лидеры категории
Лена-пена
Искусственный Интеллект
М.И.
Искусственный Интеллект
Y.Nine
Искусственный Интеллект
•••
При подключении Character Controller в юнити к персонажу, то он начинает бесконтрольно крутиться.
Супер Пиксель
Ученик
(26), открыт
1 день назад
При подключении Character Controller в юнити к персонажу, то он начинает бесконтрольно крутиться, в чем проблема? без него работает нормально, но персонаж не ходит
вот код:
using System;
using UnityEngine;
public class CharaterController: MonoBehaviour
{
private float _rotateSpeed = 75;
private float _runSpeed = 8;
private float _walkSpeed = 5;
private float _jumpForse = 5;
private float _gravity = -9.81f;
private Camera _playerCamera;
private CharacterController _characterController;
private Vector2 _rotation;
private Vector3 _velocity;
private Vector2 _direcrion;
private void Start()
{
_characterController = GetComponent<CharacterController>();
_playerCamera = GetComponentInChildren<Camera>();
Cursor.lockState = CursorLockMode.Locked;
}
private void Update()
{
_characterController.Move(_velocity * Time.deltaTime);
_direcrion = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
Vector2 mouseDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
if(_characterController.isGrounded) _velocity.y = Input.GetKeyDown(KeyCode.Space) ? _jumpForse : -0.1f;
else _velocity.y += _gravity * Time.deltaTime;
mouseDelta *= _rotateSpeed * Time.deltaTime;
_rotation.y += mouseDelta.x;
_rotation.x = Mathf.Clamp(_rotation.x - mouseDelta.y, -90, 90);
_playerCamera.transform.localEulerAngles = _rotation;
}
private void FixedUpdate()
{
_direcrion *= Input.GetKey(KeyCode.LeftShift) ? _runSpeed : _walkSpeed;
Vector3 move = Quaternion.Euler(0, _playerCamera.transform.eulerAngles.y, 0) * new Vector3(_direcrion.x, 0, _direcrion.y);
_velocity = new Vector3(move.x, _velocity.y, move.z);
}
}
0 ответов
Похожие вопросы
вот код:
using System;
using UnityEngine;
public class CharaterController: MonoBehaviour
{
private float _rotateSpeed = 75;
private float _runSpeed = 8;
private float _walkSpeed = 5;
private float _jumpForse = 5;
private float _gravity = -9.81f;
private Camera _playerCamera;
private CharacterController _characterController;
private Vector2 _rotation;
private Vector3 _velocity;
private Vector2 _direcrion;
private void Start()
{
_characterController = GetComponent<CharacterController>();
_playerCamera = GetComponentInChildren<Camera>();
Cursor.lockState = CursorLockMode.Locked;
}
private void Update()
{
_characterController.Move(_velocity * Time.deltaTime);
_direcrion = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
Vector2 mouseDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
if(_characterController.isGrounded) _velocity.y = Input.GetKeyDown(KeyCode.Space) ? _jumpForse : -0.1f;
else _velocity.y += _gravity * Time.deltaTime;
mouseDelta *= _rotateSpeed * Time.deltaTime;
_rotation.y += mouseDelta.x;
_rotation.x = Mathf.Clamp(_rotation.x - mouseDelta.y, -90, 90);
_playerCamera.transform.localEulerAngles = _rotation;
}
private void FixedUpdate()
{
_direcrion *= Input.GetKey(KeyCode.LeftShift) ? _runSpeed : _walkSpeed;
Vector3 move = Quaternion.Euler(0, _playerCamera.transform.eulerAngles.y, 0) * new Vector3(_direcrion.x, 0, _direcrion.y);
_velocity = new Vector3(move.x, _velocity.y, move.z);
}
}