I am working on a weather system that works great; for everything except union operations. For some reason, the ray passes straight through all the unions, despite setting the collision fidelity to Precise, and all best efforts to fix any collision problems that may be caused by it.
(One of the unions is a block part that was unioned, and has 12 triangles, so it is not complexity)
Each emitter part is casting a ray directly below it with the following code:
local ignore = {}
for _,player in game.Players:GetChildren() do
if player.Character then
ignore[#ignore+1] = player.Character
end
end
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = ignore
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.IgnoreWater = false
local hit2 = workspace:Raycast(emitter.Position, Vector3.new(0,-5000,0), raycastParams)
if hit2 ~= nil then
if hit2.Instance.Name == "Union" then
print(hit2.Position)
end
end
if hit2 ~= nil and hit2.Position.Y > -500 then
local hit_pos = hit2.Position
print(hit_pos, hit2.Instance)
end
The code returns the hit position and instance of the baseplate below the union, and completely ignores the union.
Relevant game if you want to see it in use: https://www.roblox.com/games/11262775141/Dynamic-Rain
Link to the model with the entire code found in the game: https://www.roblox.com/library/11461945331/Rain-Module
