东西锁定改变相机

问题描述 投票:0回答:2

我正在尝试让玩家从“LockFirstPerson”更改为“Classic”,但它不起作用。功能有效,我使用了

print("Tried to enable classic")
确实有效。 Roblox 文档和 devForum 上的答案告诉我它应该可以工作,所以有东西锁定了它。 这是我现在的代码:

local player = game:GetService("Players").LocalPlayer
Camera.CameraType = Enum.CameraType.Custom
local Character = script.Parent
local Humanoid = Character:WaitForChild("Humanoid")

Humanoid.Died:Connect(function()
    print("Tried to enable classic")
    player.CameraMinZoomDistance = 15 --Zoom distance
    player.CameraMode = Enum.CameraMode.Classic
    Camera.CameraType = Enum.CameraType.Custom
    player.CameraMinZoomDistance = 0.5
end)

如果我尝试这个,我会得到这个错误:

Workspace.Tibbiedo1.LocalScript:2: attempt to index nil with 'CameraType'
,所以定义相机也不起作用。

我尝试了很多不同的脚本,但没有一个有效:

  1. Camera.CameraType = Enum.CameraType.Custom
    更改为
    local Camera.CameraType = Enum.CameraType.Custom

  2. 完全删除

    Camera.CameraType = Enum.CameraType.Custom

lua roblox
2个回答
0
投票
local player = game:GetService("Players").LocalPlayer
local Camera = workspace.CurrentCamera
Camera.CameraType = Enum.CameraType.Custom
local Character = script.Parent
local Humanoid = Character:WaitForChild("Humanoid")

Humanoid.Died:Connect(function()
    print("Tried to enable classic")
    player.CameraMinZoomDistance = 15 --Zoom distance
    player.CameraMode = Enum.CameraMode.Classic
    Camera.CameraType = Enum.CameraType.Custom
    player.CameraMinZoomDistance = 0.5
end)

0
投票

如果你只是想锁定第一人称并且你不需要相机是Scriptable,那么你可以试试这个(假设这是一个StarterCharacterScript):

local players = game:GetService("Players")
local player = players.LocalPlayer

player.CameraMode = Enum.CameraMode.LockFirstPerson

local char = player.Character

if not char or not char.Parent then
    char = player.CharacterAdded:Wait()
end

local humanoid = char:WaitForChild("Humanoid")

humanoid.Died:Connect(function()
    player.CameraMode = Enum.CameraMode.Classic
end)
© www.soinside.com 2019 - 2024. All rights reserved.