Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Raycasting не работает (Roblox Studio)

Костя Саликов Ученик (30), на голосовании 2 недели назад
Хочу сделать сущности как из игры DOORS, но, хоть в плотную подойти, сущность не видит игрока, скажите пожалуйста, я что то не так сделал?

 local a60 = script.Parent 
local distance = 30
local targlayer = "Players"

function raycast(target)
local direction = (target.Position-a60.Position).Unit
local raycastParameters = RaycastParams.new()
raycastParameters.CollisionGroup = targlayer
raycastParameters.FilterType = Enum.RaycastFilterType.Exclude
raycastParameters.FilterDescendantsInstances = {a60}
raycastParameters.IgnoreWater = true
return workspace:Raycast(a60.Position,direction,raycastParameters)
end
function kill(target)
if target and target:FindFirstChildOfClass("Humanoid") then
target.Humanoid.Health = 0
print("killed "..target.Name)
end
end
while wait(1) do
for _,player in pairs(game.Players:players()) do
if player.Character and player.Character.HumanoidRootPart then
local results = raycast(player.Character.HumanoidRootPart)
if not results then
continue
end
if not results.Instance then
continue
end
if results.Instance == player.Character.HumanoidRootPart then
kill(player.Character)
end
end
end
end
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (8582) 1 месяц назад
  1. **Параметры RaycastParams**: Убедитесь, что вы правильно используете `FilterType` и `FilterDescendantsInstances`. Например, вместо `targlayer` используйте `Enum.RaycastFilterType.Exclude` и убедитесь, что `FilterDescendantsInstances` правильно настроены для исключения ненужных объектов.

  1. **Проверка результата**: Вы проверяете, равен ли `results.Instance` `player.Character.HumanoidRootPart`, но это может быть некорректно. Вместо этого проверьте, что `results` не равен nil и что `results.Instance` действительно является частью, которую вы хотите проверить.

  1. **Расчет направления**: Убедитесь, что направление рассчитывается корректно. Оно должно быть нормализовано и умножено на расстояние, если это необходимо.
Похожие вопросы