Страница 1 из 1

Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 17:15
Zimaell
Мне нужно проверять кое-где лучами а кое-где сферой, проверяю так
Синтаксис:
Используется csharp
public LayerMask RayIgnoreLayer;
......
if(Physics.Raycast(CheckPointCenter.position, Vector3.down, out RayHit, 3)){
if(Physics.CheckSphere(CheckSphereCenterBottom.position, CheckSphereRadius, ~RayIgnoreLayer)){
......

Как вы видите у луча указан номер слоя, а у сферы маска (выставлена 3я в поле), если у луча поставить маску или у сферы поставить номер то срабатывать не будет, работает только вот в таком виде, почему так?

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 17:20
Tolking
там должен быть не номер слоя а маска слоя.

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 17:28
Zimaell
Tolking писал(а):там должен быть не номер слоя а маска слоя.

но почему-то если я устанавливаю маску как у сферы то луч не срабатывает, в этом то и проблема, там так срабатывает а там так, а почему так не пойму...

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 18:21
Alkos26Rus
~
Этот зачем символ?

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 19:06
Tolking
~ это "побитовое не"

Может просто Raycast не попадает никуда?

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 21:12
1max1
Зачем использовать ~ если ты делаешь маску, это же не удобно.

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 21:14
Zimaell
1max1 писал(а):Зачем использовать ~ если ты делаешь маску, это же не удобно.

делал по примеру, написано что если так установить и потом в поле выбрать те слои которые должны игнорироваться то они будут игнорироваться, только вот что у меня в результате получилось...

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 21:15
Zimaell
Tolking писал(а):~ это "побитовое не"

Может просто Raycast не попадает никуда?

не ну с цифрой то работает, я получаю длину луча до объекта...
а вот с маской луч как раз никуда не попадает, я не знаю что за глюк, вот и сам сижу и думаю, вроде всё как нужно...
ну тогда потом в отдельном чистой проекте попробую...

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 15 ноя 2022, 21:42
1max1
Выведи в консоль оба значения.

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 16 ноя 2022, 11:44
Zimaell
1max1 писал(а):Выведи в консоль оба значения.

вот тут я как бы не понял, я вывел дебаг Debug.Log(~RayIgnoreLayer);, мне вывело -9, хотя слой находится под номером 3, в поле выбран только 3й слой, 9го слоя нет вовсе, не понял что-то я...

Re: Почему слои дейтсвуют по разному?

СообщениеДобавлено: 16 ноя 2022, 11:56
Zimaell
всё разобрался, я не указывал длину луча
Синтаксис:
Используется csharp
if(Physics.Raycast(CheckPointCenter.position, Vector3.down, out RayHit, ~RayIgnoreLayer) // не работает, считает слой длиной луча
if(Physics.Raycast(CheckPointCenter.position, Vector3.down, out RayHit, 1f, ~RayIgnoreLayer) // так работает

В данном вопросе "мистика" исчезла...