How to change camera in different places?
So I have a 2D camera setup for my platformer, when I teleport to another place, I want that camera to be in its normal state, but if i teleport to another level, the camera needs to go back to 2D mode
02 | cam = workspace.CurrentCamera |
08 | function GetMass(object) |
10 | if pcall ( function () return object:GetMass() end ) then |
11 | mass = object:GetMass() |
13 | for _,child in pairs (object:GetChildren()) do |
14 | mass = mass + GetMass(child) |
19 | function onPlayerRespawned(newPlayer) |
21 | torso = newPlayer.Character.Torso |
22 | bp = Instance.new( "BodyPosition" ) |
24 | bp.position = torso.Position |
27 | bp.maxForce = Vector 3. new( 0 , 0 , 1000000 ) |
29 | local bf = Instance.new( "BodyForce" ) |
30 | bf.force = Vector 3. new( 0 , 0 *GetMass(newPlayer.Character), 0 ) |
32 | script.LocalScript:Clone().Parent = torso.Parent |
33 | newPlayer.Character.DescendantAdded:connect( function () |
34 | bf.force = Vector 3. new( 0 , 0 *GetMass(newPlayer.Character), 0 ) |
36 | newPlayer.Character.DescendantRemoving:connect( function () |
37 | bf.force = Vector 3. new( 0 , 0 *GetMass(newPlayer.Character), 0 ) |
41 | function onPlayerEntered(newPlayer) |
42 | if newPlayer.Character then |
43 | onPlayerRespawned(newPlayer) |
45 | newPlayer.Changed:connect( function (property) |
46 | if (property = = "Character" ) and newPlayer.Character then |
47 | onPlayerRespawned(newPlayer) |
52 | game.Players.PlayerAdded:connect(onPlayerEntered) |
06 | local torso = script.Parent.Torso |
07 | local center = Instance.new( "Part" ) |
08 | center.Name = script.Parent.Name .. " Center" |
09 | center.Transparency = 1 |
10 | center.CanCollide = false |
11 | center.Size = Vector 3. new( 1 , 1 , 1 ) |
12 | center.Position = torso.Position |
13 | center.CFrame = CFrame.new(Vector 3. new( 0 , 0 , 0 ),Vector 3. new( 0 , 0 ,- 1 )) |
14 | center.Parent = game.Workspace |
15 | local bp = Instance.new( "BodyPosition" ) |
16 | bp.position = center.Position |
17 | bp.maxForce = Vector 3. new( 1000000 , 1000000 , 1000000 ) |
19 | local cam = game.Workspace.CurrentCamera |
20 | cam.CameraSubject = center |
21 | cam.CameraType = Enum.CameraType.Attach |
25 | center.BodyPosition.position = torso.Position |
27 | cam.CoordinateFrame = CFrame.new(Vector 3. new(center.Position.x + distance,center.Position.y + height,center.Position.z)) |