Обнаружение столкновений Unity с Raycasts, смещенным от центраC#

Место общения программистов C#
Ответить
Anonymous
 Обнаружение столкновений Unity с Raycasts, смещенным от центра

Сообщение Anonymous »

Я создавал 3D-игру в Unity и настраивал систему обнаружения столкновений с помощью raycasts, и она казалась смещенной от центра.
Мой код был:

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

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {
[SerializeField] private float movementSpeed = 7f;
[SerializeField] private float rotationSpeed = 10f;
[SerializeField] private float playerSize = .7f;

[SerializeField] private GameInput gameInput;

private bool isWalking;

private void Update() {
Vector2 inputVector = gameInput.GetMovementVectorNormalized();

Vector3 moveDir = new Vector3 (inputVector.x, 0f, inputVector.y).normalized;

bool canMove = !Physics.Raycast(transform.position, moveDir, playerSize);

if (canMove) {
transform.position += moveDir * movementSpeed * Time.deltaTime;
}

isWalking = moveDir != Vector3.ze
transform.forward = Vector3.Slerp(transform.forward, moveDir, Time.deltaTime *      rotationSpeed);
}
}
Я попробовал изменить размер игрока, но он не позволял мне пройти точку, находящуюся примерно в дюйме от куба, который я использовал для тестирования. С другой стороны, я мог бы войти в куб, но не до конца.

Подробнее здесь: https://stackoverflow.com/questions/790 ... off-center
Ответить

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

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

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

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

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