VulCode

LayerMask Unity

Zaznaczasz warstwy, dostajesz maskę bitową do Physics.Raycast i wiersz C#.

Kategoria
SCP:SL, Steam i Unity
Cena
bezpłatne

Narzędzie uruchamia się w Twojej przeglądarce.

Wszystko liczy się w przeglądarce. Nic z tego, co wpiszesz, nie trafia na nasz serwer.

Jak użyć w trzech krokach

Narzędzie w schemacie, z przykładem z tej strony. Numer kroku stoi tam, gdzie go wykonujesz: w polach, przy wyniku albo poza narzędziem.

LayerMask Unity
Co wpisujesz
Warstwy 0 (Default), 8 (Player) i 9 (Enemy)
  1. Zaznacz warstwy, które ma widzieć Raycast.

Co dostajesz
LayerMask mask = LayerMask.GetMask("Default", "Player", "Enemy"); 769 = 0x00000301
  1. Odczytaj liczbę maski.

  2. Skopiuj wiersz C# z LayerMask.

Sześć zestawów warstw i ich maska

Physics.Raycast przyjmuje maskę, a nie numer warstwy: warstwa n to 1 << n. Warstwa 31 jest bitem znaku, dlatego int z nią wychodzi ujemny, a pełna maska to -1.

WarstwyOczekiwana maskaWynik narzędziaWynik
Warstwy0, 8, 9przykład z opisu narzędzia
Oczekiwana maska(1 << 0) | (1 << 8) | (1 << 9) = 769
Wynik narzędzia769 (0x00000301), GetMask z 3 nazwami
Zgodne z oczekiwanym
Warstwy2tylko Ignore Raycast
Oczekiwana maska(1 << 2) = 4
Wynik narzędzia4 (0x00000004), GetMask z 1 nazwą
Zgodne z oczekiwanym
Warstwywszystkie poza 2wszystko poza Ignore Raycast, przycisk Odwróć
Oczekiwana maska~(1 << 2) = -5
Wynik narzędzia-5 (0xFFFFFFFB), GetMask z 31 nazwami
Zgodne z oczekiwanym
Warstwy31ostatnia warstwa to bit znaku
Oczekiwana maska(1 << 31) = -2147483648
Wynik narzędzia-2147483648 (0x80000000), GetMask z 1 nazwą
Zgodne z oczekiwanym
Warstwy0-31wszystkie 32 warstwy
Oczekiwana maska~0 = -1
Wynik narzędzia-1 (0xFFFFFFFF), GetMask z 32 nazwami
Zgodne z oczekiwanym
Warstwy-nic nie zaznaczone
Oczekiwana maska0 = 0
Wynik narzędzia0 (0x00000000)
Zgodne z oczekiwanym

6 z 6 przypadków zgodnych z oczekiwanym

Pytania