Срочно помогите пожалуйста с RayCasting в Roblox Studio!!
У меня возникла проблема что RayCastResult = Nil, Я пытался множеством способов исправить это но нечего не получалось я искал сайты с информацией о такой проблеме но нечего не нашёл.
for _, Part in WalkersPointFolder:GetChildren() do
local Orig = script.Parent.Position
local To = Part.Position
local RayCastParams = RaycastParams.new ()
RayCastParams.FilterType = Enum.RaycastFilterType.Exclude
RayCastParams.FilterDescendantsInstances = {script.Parent.Parent}
RayCast = game.Workspace:Raycast(Orig , To, RayCastParams)
print(RayCast) -- тут выдаёт nil
if RayCast then
if RayCast.Instance == Part then
table.insert(WalkersPoint, Part)
end
В этом скрипте мне надо посмотреть видит ли Монстр блоки для ходьбы, если да то он выбирает рандомный парт и идёт туда, но проблема сама в том что RayCastResult выдаёт Nil.
Помогите пожалуйста так как я пытался разными способами это исправить но нечего не получалось
Ещё добавлю может что то вам это даст, иногда он всё же выдавал RayCastResult но Сам RayCast попадал не в блоки ходьбы а в карту + Монстр это модель от которого идёт луч а блок для ходьбы находится в папке с остальными такими же блоками!
Ошибка заключается в неудачном использовании функции `game.Workspace:Raycast()`. У вас отсутствует проверка наличия попадания и использования возвращаемого значения. Вместо этого, вы напрямую пытаетесь вызвать `print(RayCast)`, но так как `RayCast` имеет значение `nil`, поэтому вы получаете его в результате вывода.
Чтобы исправить эту ошибку и получить правильный результат, вы должны проверить наличие попадания через условный оператор (`if`) и проверить, что `RayCast` не равен `nil`. Вот исправленный код:
```lua
for _, Part in pairs(WalkersPointFolder:GetChildren()) do
local Orig = script.Parent.Position
local To = Part.Position
local RayCastParams = RaycastParams.new ()
RayCastParams.FilterType = Enum.RaycastFilterType.Exclude
RayCastParams.FilterDescendantsInstances = {script.Parent.Parent}
RayCast = game.Workspace:Raycast(Orig, To, RayCastParams)
if RayCast then
if RayCast.Instance == Part then
table.insert(WalkersPoint, Part)
end
end
end
```
Теперь код будет корректно проверять наличие попадания (`RayCast`) и добавлять `Part` в `WalkersPoint`, только если `RayCast.Instance` равно `Part`.
если помог https://www.donationalerts.com/r/rxf360