Rigidbody не движется при запуске, хотя капсульный запуск ничего не обнаруживаетC#

Место общения программистов C#
Ответить
Anonymous
 Rigidbody не движется при запуске, хотя капсульный запуск ничего не обнаруживает

Сообщение Anonymous »

Я хочу реализовать базовое движение с использованием твердого тела, но мой игрок в начале игры не может двигаться с помощью WASD и может только прыгать и перемещаться. Когда они смещаются, они немного смещаются в сторону, прежде чем WASD, похоже, снова начинает работать.
Моя установка включает в себя пустой объект со скриптом, коллайдером и жестким телом. Его дети — основная камера и визуальная капсула. У меня есть пустой объект со сценарием GameInput, а среда содержит базовые фигуры с коллайдерами и все.
Мой код Player содержит HandleMovement, отвечающий за смещение с помощью lerp, прыжки с помощью AddForce, а входные данные движения принимаются пустым объектом GameInput, а сценарий Player получает его и использует для перемещения твердого тела. Если элементы «point1» и «point2» в разделе ходьбы кажутся запутанными, я хотел, чтобы CapsuleCast автоматически изменялся при изменении Collider.Height из-за того, что моя логика сдвига меняет Collider.Height.
Это скрипт Player:

Код: Выделить всё

private float speed;
[SerializeField]
private float shiftSpeed = 0.5f;
[SerializeField]
private float normalSpeed = 1f;

private Rigidbody rigidbody;
private CapsuleCollider capsuleCollider;
[SerializeField]
private Transform mainCamera;
private MouseLook cameraMouseLook;
private float jumpCooldownTimer;
[SerializeField]
private float jumpCooldownTimerMax = 1f;
[SerializeField]
private float jumpForce = 3f;
private bool cameraIsShifting = false;
private bool cameraShifted = false;
private bool cameraUnShifted = true;
private Vector3 OGLocalCamPos;
private float targetLocalHeight = 1.33f;
private float newTransformY;
private float oldTransformY=999;
private bool allowedToShift;

private void Awake()
{
cameraMouseLook = mainCamera.GetComponent();

rigidbody = GetComponent();

capsuleCollider = GetComponent();
}

private void Update()
{
//newTransformY = transform.position.y;
//if (oldTransformY != newTransformY)
//{
//  allowedToShift = false;
//}
//else
//{
//  allowedToShift = true;
//}
HandleMovement();

}

private void HandleMovement()
{

//JUMP SECTION
//bool canJump = GameInput.Instance.listenJump();
//jumpCooldownTimer -= Time.deltaTime;

//if (canJump&&jumpCooldownTimer

Подробнее здесь: [url]https://stackoverflow.com/questions/79789292/rigidbody-not-moving-on-start-even-though-capsulecast-not-detecting-anything[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»