Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do you make a part transparent if it is over the player?

Asked by 4 years ago

I am making a top down shooter and when the player walks in a room with a ceiling, I want the ceiling to go transparent and when the player walks out the ceiling should go back to opaque.

The current camera script looks like this:

local currentCamera = workspace.CurrentCamera
    local offset = Vector3.new(-0.01,30,0)
    local player = game.Players.LocalPlayer

    local lobbyactive = game:GetService("ReplicatedStorage").Values.LobbyActive

    local updateCameraEvent = game.ReplicatedStorage.Events.UpdateCamera

    local mode = "lobby"

    player.CharacterAdded:Wait()
    player.Character:WaitForChild("HumanoidRootPart")
    local humRoot = player.Character:WaitForChild("HumanoidRootPart")

    currentCamera.CameraSubject = humRoot
    currentCamera.CameraType = Enum.CameraType.Scriptable
    currentCamera.FieldOfView = 90




    updateCameraEvent.OnClientEvent:Connect(function()
        if lobbyactive.Value == true then
            mode = "lobby"
        elseif lobbyactive.Value == false then
            mode = "game"
        end
    end)


    game:GetService('RunService').Stepped:Connect(function()
        if mode == "lobby" then
            currentCamera.CFrame = CFrame.new(workspace.CameraPart.Position, Vector3.new(0,0,0))
        elseif mode == "game" then
            currentCamera.CFrame = CFrame.new((humRoot.Position + offset), humRoot.Position)   
        end
    end)

I also already have the DevCameraOcclusionMode set to invisicam but it doesn't work :/

I have also tried to use a raycast but once the part is invisible it doesn't change back.

Answer this question