Проблема с наземной проверкой Unity3DC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с наземной проверкой Unity3D

Сообщение Anonymous »

Итак, у меня есть наземный объект под названием Player, к которому прикреплены коллайдер и аниматор. Я пытаюсь успешно проверить, «заземлен» ли игрок, считывая столкновение игрока с плоскостью под названием (и помеченной) Ground.
Мой игрок имеет RigidBody, и мой коллайдер, прикрепленный к указанному игроку, имеет сетчатый коллайдер, прикрепленный к нему выпукло. Я использую приведенный ниже сценарий, прикрепленный к моему плееру, чтобы проверить, заземлен ли я или касаюсь земли. Он не возвращает игрока на землю, когда он стоит на вершине самолета.

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

void Update()
{
if(Physics.BoxCast(transform.position, boxSize, -player.up, out hit, Quaternion.Euler(collider.eulerAngles), distance, mask, QueryTriggerInteraction.Ignore))
{
if(hit.collider.tag == "Ground")
{
isGrounded = true;
groundNormal = hit.normal;
}
else
{
isGrounded = false;
groundNormal = Vector3.up;                          // if were in the air or not touching something then gravity is always set down.
}
}
else
{
isGrounded = false;
groundNormal = Vector3.up;
}
}
Я пробовал редактировать компоненты игрового объекта Player, чтобы проверить, нет ли проблем с размером или расстоянием моего поля, но ничего не помогает. Ниже я прикрепил снимок экрана с окном инспектора проигрывателя. Поле «Заземлено» должно быть отмечено, когда мой игрок касается плоскости земли, но это не так.
введите здесь описание изображения

Подробнее здесь: https://stackoverflow.com/questions/768 ... heck-issue
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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