if (movement != Vector3.zero)
{
LayerMask myMask = 1 << 8;
if (!Physics.Raycast(this.transform.position + Vector3.up, transform.forward, 1f))
{
_playerAnimator.SetBool("Walk", true);
}
else
{
_playerAnimator.SetBool("Walk", false);
}
_playerRigidbody.MovePosition(transform.position + movement);
this.transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(movement.normalized), 4 * Time.deltaTime);
}
else
{
_playerAnimator.SetBool("Walk", false);
}
}
Я хочу, чтобы этот Raycast не реагировал на триггеры. Для этого я создал отдельный слой (N9). Здесь все вроде нормально и синтаксис не нарушен, но тем не менее объект, который использует этот скрипт вообще ни на что не реагирует. Можете помочь, пожалуйста.
Маску вы может и задали (кстати, задали вы ее неверно), а где вы ее используете?
LayerMask myMask = 1 << 8;
if (!Physics.Raycast(this.transform.position + Vector3.up, transform.forward, 1f, ?где маска?))
{
...
}
Чтобы игнорировать 9 слой, нужно задать маску вот так: LayerMask myMask = !(1 << 9);
1 << 9 -> 10_0000_0000
- маска указывает только на 9й слой~(1 << 9) -> 01_1111_1111
- маска указывает на все слои, кроме 9гоЧтобы рейкаст учитывал маску, а не использовал дефолтную, пишем:
LayerMask myMask = ~(1 << 9);
if (!Physics.Raycast(this.transform.position + Vector3.up, transform.forward, 1f, myMask))
{
...
}
А вообще для таких случаев в рейкасте есть специальный параметр QueryTriggerInteraction
, который позволяет игнорировать вообще любые триггеры:
Physics.Raycast(
this.transform.position + Vector3.up,
transform.forward,
1f,
Physics.DefaultRaycastLayers,
QueryTriggerInteraction.Ignore
)
Сделайте проще, заведите у себя в компоненте public
переменную LayerMask
, и используйте сравнение с уже настроенной через редактор переменной. Прописывать в коде номер маски не гуд. Если вам в последствии потребуется заменить слой или сделать более сложную маску из комбинации нескольких слоев, вы просто сделаете настройку через редактор не правя кода.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я пытаюсь сделать парсер на основе "AngleSharp"Я использую следующий код для скачивания:
Подскажите как пропускать чтение пустых параметров из INI файла, чтобы при загрузке формы не выдавало ошибку - нет логического значения
Есть строка вида[{"value":"imagine dragons","url":"\/artist\/547-imagine-dragons\/"}] хочу перевести его в массив для дальнейшей обработки, например, строку перевести в массив...