So basically, I have this script which sends out a raycast from the player's torso to the position of their camera. The point of this script is to make a part that the player's camera touches go semi-transparent so they can look through it, and then go back to the transparency it was before when they move their camera away. If you still don't know what I mean, here's a video (sorry it's fuzzy). This is what I have so far:
local rs = game:GetService("RunService") local plr = game:GetService("Players").LocalPlayer workspace:WaitForChild(plr.Name) function render() local ray = Ray.new(plr.Character.UpperTorso.CFrame.p, (workspace.CurrentCamera.CFrame.p - plr.Character.UpperTorso.CFrame.p).Unit * 300) local part, position = workspace:FindPartOnRay(ray,plr.Character,false,true) if part then part.Transparency = 0.5 wait() part.Transparency = 0 end end rs.RenderStepped:Connect(render)
There are a few problems with this script: the camera isn't able to go through the object since the transparency is constantly being changed, and if the object had a different transparency-such as 0.3-to begin with, it would be set back to a transparency of 0 after the player moved their camera away. If you know what I should add to the script, have a suggestion, or think I should go about this a different way altogether, then please let me know.