Like you start off at 2D and then you're going to another area and turns 3D view
COMMUNITY QUESTION
How to make a 2D-3D script?
1 answer
Ok listen Carefully!
Step 1: Put 2 Bricks
Step 2: 2D, Place this script one of your bricks
local ting = 0
function GetMass(object)
local mass = 0
if pcall(function() return object:GetMass() end) then
mass = object:GetMass()
end
for _,child in pairs(object:GetChildren()) do
mass = mass + GetMass(child)
end
return mass
end
function onTouch(part)
local human = part.Parent:findFirstChild("Humanoid")
if (human == nil) then return end
if ting == 0 and human.Parent:findFirstChild("LocalScript") == nil then
ting = 1
script.Parent.Reflectance = 0.1
local d = script.LocalScript:clone()
d.Parent = human.Parent
wait()
local torso = human.Parent.Torso
local bp = Instance.new("BodyPosition")
bp.Name = "TwoD"
bp.position = torso.Position
bp.P = 1000000
bp.D = 1000
bp.maxForce = Vector3.new(0, 0, 1000000)
bp.Parent = torso
local bf = Instance.new("BodyForce")
bf.force = Vector3.new(0, 100*GetMass(human.Parent), 0)
bf.Parent = torso
human.Parent.Humanoid.WalkSpeed = 24
human.Parent.DescendantAdded:connect(function()
bf.force = Vector3.new(0, 100*GetMass(human.Parent), 0)
end)
human.Parent.DescendantRemoving:connect(function()
bf.force = Vector3.new(0, 100*GetMass(human.Parent), 0)
end)
wait(2)
ting = 0
script.Parent.Reflectance = 0
end
end
script.Parent.Touched:connect(onTouch)
in the SAME brick, create a new localscript (advanced Objects -> localscript) and copy this to local script
lockCamera = false
distance = 30
height = 5
local torso = script.Parent.Torso
local center = Instance.new("Part")
center.Name = script.Parent.Name .. " Center"
center.Transparency = 1
center.CanCollide = false
center.Size = Vector3.new(1,1,1)
center.CFrame = CFrame.new(Vector3.new(0,0,0),Vector3.new(0,0,-1))
center.Position = torso.Position
center.Parent = game.Workspace
local bp = Instance.new("BodyPosition")
bp.position = center.Position
bp.maxForce = Vector3.new(1000000, 1000000, 1000000)
bp.Parent = center
local bg = Instance.new("BodyGyro")
bg.maxTorque = Vector3.new(9e+005, 9e+005, 9e+005)
bg.cframe = center.CFrame
bg.Parent = center
local cam = game.Workspace.CurrentCamera
cam.CameraSubject = center
cam.CameraType = Enum.CameraType.Attach
while torso.Parent do
wait()
center.BodyPosition.position = torso.Position
if lockCamera then
cam.CoordinateFrame = CFrame.new(Vector3.new(center.Position.x + distance,center.Position.y + height,center.Position.z))
end
if torso.Parent.Humanoid.Health < 1 then
torso.TwoD:remove()
torso.BodyForce:remove()
end
end
center:Remove()
Step 3: changing 3D
Ok now go to your second brick, create a script and copy this
local ting = 0
function onTouch(part)
local human = part.Parent:findFirstChild("Humanoid")
if (human == nil) then return end
if ting == 0 and human.Parent.LocalScript ~= nil then
ting = 1
script.Parent.Reflectance = 0.1
local charitem = human.Parent:GetChildren()
for i = 1, #charitem do
if charitem[i].Name == "LocalScript" then
charitem[i]:remove()
end
end
local torsoitem = human.Parent.Torso:GetChildren()
for i = 1, #torsoitem do
if torsoitem[i].Name == "TwoD" or torsoitem[i].Name == "BodyForce" then
torsoitem[i]:remove()
end
end
game.Workspace.CurrentCamera:remove()
local cam = script.Instance:clone()
cam.CameraSubject = human
cam.Parent = game.Workspace
game.Workspace.CurrentCamera = cam
wait(2)
ting = 0
script.Parent.Reflectance = 0
end
end
script.Parent.Touched:connect(onTouch)
Now at advanced objects, create a camera and rename to Instance, put the camera to 3D Script
Step 4: Test it, Got problems? reply
This discussion is preserved as it was. New answers, comments, and votes are closed.
