一个可以设置 Player 对象属性默认值的服务。当玩家进入服务器时,玩家对象的每个属性被设置为 StarterPlayer 中相应属性的当前值。
此外,您可以向此服务添加四个对象:
- 一个包含每个玩家运行一次的脚本的 StarterPlayerScripts 实例。
- 一个用于每次玩家生成时添加到其角色的脚本的 StarterCharacterScripts 实例。
- 一个名为 StarterHumanoid 的 Humanoid 实例,将被用作每个玩家角色的默认类人形。
- 一个名为 StarterCharacter 的 Model 实例,将用作所有玩家的角色模型。
概要
属性
描述当前游戏关于来自网站的自定义头像动画的权限级别。
设置角色在移动设备上碰撞障碍物时是否会自动跳跃。
玩家默认相机允许缩放的最大距离(以 studs 为单位)。
玩家默认相机允许缩放的最小距离(以 studs 为单位)。
更改默认相机的模式为第一人称或第三人称。
确定 Players.Character 的 Humanoid.JumpHeight 的起始值。
确定 Players.Character 的 Humanoid.JumpPower 的起始值。
确定 Players.Character 的 Humanoid.MaxSlopeAngle 的起始值。
确定 Players.Character 的 Humanoid.UseJumpPower 的起始状态。
确定 Players.Character 的 Humanoid.WalkSpeed 的起始值。
设置默认相机如何处理相机和玩家之间的物体。
允许您在计算机上覆盖玩家的相机模式。
允许您在计算机上覆盖玩家的移动模式。
允许您在触摸设备上覆盖玩家的相机模式。
允许您在触摸设备上覆盖玩家的移动模式。
确定玩家是否可以默认切换鼠标锁定。
设置该玩家看到其他 Humanoid 血条的距离。如果设置为 0,则不显示血条。
确定玩家的角色外观是否应该加载。
指示进入体验的角色是否将装备分层服装配件。
设置该玩家看到其他 Humanoid 名称的距离。
确定加载角色时是否加载用户拥有的表情。
属性
AllowCustomAnimations
此属性描述当前游戏关于来自网站的自定义头像 Animations 的权限级别。
因此,此值无法在游戏内更改。只能通过更改网站上游戏设置页面的权限级别来更改它。
此属性并不打算在游戏中使用。
AutoJumpEnabled
此属性设置角色在移动设备上碰撞障碍物时是否会自动跳跃。
此属性在玩家加入游戏时从 StarterPlayer 复制到 Player。随后,此属性的值被复制到角色的 Humanoid 的 AutoJumpEnabled 属性。在其他字面上,可以使用这三个属性按角色、按玩家和按游戏设置自动跳跃行为。
代码示例
这段代码示例适用于 TextButton。它允许玩家在移动设备上切换自动跳跃行为。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- 更新按钮文本
if player.AutoJumpEnabled then
button.Text = "自动跳跃已开启"
else
button.Text = "自动跳跃已关闭"
end
-- 如果玩家有角色,反映该属性
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- 切换自动跳跃
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- 更新其他所有内容
update()
end
button.Activated:Connect(onActivated)
update()
AvatarJointUpgrade
CameraMaxZoomDistance
此属性设置相机可以与角色之间的最大距离(以 studs 为单位),使用默认相机。
此属性为每个加入游戏的玩家设置 Player.CameraMaxZoomDistance 的默认值。如果此值低于 StarterPlayer.CameraMinZoomDistance,则将增加至 CameraMinZoomDistance。
代码示例
这个例子演示了如何设置玩家的摄像机最小和最大 缩放距离。
在这个例子中,我们设置 Player.CameraMinZoomDistance 和 Player.CameraMaxZoomDistance 来设置玩家摄像机与其角色之间的最小和最大距离(以 studs 为单位)。
请注意,由于该示例尝试将 CameraMinZoomDistance 设置为 大于 CameraMaxZoomDistance,因此 CameraMinZoomDistance 的值将被减少,并设置为最大缩放距离的值。
要更改玩家在首次进入游戏时的默认最小和最大缩放距离值, 你可以更改 StarterClass.Player.CameraMinZoomDistance 和 StarterClass.Player.CameraMaxZoomDistance 属性。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75
CameraMinZoomDistance
此属性设置相机可以与角色之间的最小距离(以 studs 为单位),使用默认相机。
此属性为每个加入游戏的玩家设置 Player.CameraMinZoomDistance 的默认值。如果此值高于 StarterPlayer.CameraMaxZoomDistance,则将减少至 CameraMaxZoomDistance。
代码示例
这个例子演示了如何设置玩家的摄像机最小和最大 缩放距离。
在这个例子中,我们设置 Player.CameraMinZoomDistance 和 Player.CameraMaxZoomDistance 来设置玩家摄像机与其角色之间的最小和最大距离(以 studs 为单位)。
请注意,由于该示例尝试将 CameraMinZoomDistance 设置为 大于 CameraMaxZoomDistance,因此 CameraMinZoomDistance 的值将被减少,并设置为最大缩放距离的值。
要更改玩家在首次进入游戏时的默认最小和最大缩放距离值, 你可以更改 StarterClass.Player.CameraMinZoomDistance 和 StarterClass.Player.CameraMaxZoomDistance 属性。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75
CameraMode
设置每个玩家在游戏中的 Player.CameraMode 的默认值。相机有两种模式:
第一人称
在第一人称模式下,玩家的相机被完全缩放进。除非有可见的 GUI 存在且 GuiButton.Modal 属性设置为 true,否则鼠标将被锁定,用户的相机将随着鼠标的移动而旋转。
第三人称
在第三人称模式(默认)下,角色可以在相机中看到。在 Roblox 的第三人称模式下:
- 您可以右键单击并拖动以旋转相机,或使用屏幕右下角的箭头键。
- 当您移动鼠标时,相机不会改变(除非您将鼠标移动到屏幕边缘)。
- 当您按任意箭头键时,用户的角色将面朝相应箭头键的方向。
- 您可以自由地缩放进出。
代码示例
此示例演示如何使用 Enum.CameraMode 枚举的 LockFirstPerson 值将角色的 CameraMode 更改为第一人称。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 设置玩家的相机模式为第一人称
player.CameraMode = Enum.CameraMode.LockFirstPerson
CharacterJumpHeight
此属性确定玩家的 Player.Character 的 Humanoid.JumpHeight 的起始值。此属性的默认值为 7.2 studs。
如果设置 StarterPlayer.CharacterUseJumpPower 为 false,则此属性在属性窗口中可见,因为在其他情况下它并不相关。
由于此属性仅对未来生成的角色相关,因此更改它不会改变任何现有的玩家角色。对该属性的更改仅在玩家重生时生效。
CharacterJumpPower
此属性确定玩家的 Player.Character 的 Humanoid.JumpPower 的起始值。此属性的默认值为 50,且应用到玩家的 Humanoid 时将在 0 和 1000 之间限制。
如果设置 StarterPlayer.CharacterUseJumpPower 为 true,则此属性在属性窗口中可见,因为在其他情况下它并不相关。
由于此属性仅对未来生成的角色相关,因此更改它不会改变任何现有的玩家角色。对该属性的更改仅在玩家重生时生效。
CharacterMaxSlopeAngle
此属性确定玩家的 Player.Character 的 Humanoid.MaxSlopeAngle 的起始值。默认值为 89°,因此类人形默认情况下几乎可以爬上任何坡道。当应用到玩家的 Humanoid 时,将限制在 0 和 89 之间。
由于此属性仅对未来生成的角色相关,因此更改它不会改变任何现有的玩家角色。对该属性的更改仅在玩家重生时生效。
CharacterUseJumpPower
CharacterUseJumpPower 确定玩家的 Player.Character 的 Humanoid.UseJumpPower 的起始值。切换它将更改属性窗口中可见的属性: CharacterJumpHeight(false)或 StarterPlayer.CharacterJumpPower(true)。默认值为 true。
由于此属性仅对未来生成的角色相关,因此更改它不会改变任何现有的玩家角色。对该属性的更改仅在玩家重生时生效。
CharacterWalkSpeed
此属性确定玩家的 Player.Character 的 Humanoid.WalkSpeed 的起始值。此属性的默认值为 16。
由于此属性仅对未来生成的角色相关,因此更改它不会改变任何现有的玩家角色。对该属性的更改仅在玩家重生时生效。
ClassicDeath
DevCameraOcclusionMode
定义默认相机脚本如何处理相机与相机对象之间的物体。适用于所有玩家在加入体验时,并且无法单独更改。
默认值为 Zoom(0)。有关可用模式的列表,请参阅 Enum.DevCameraOcclusionMode。
DevComputerCameraMovementMode
此属性允许您在计算机上覆盖玩家的相机模式。
如果设置为 UserChoice,则玩家的相机移动模式将由他们在体验设置中设置的内容决定。否则,该模式将基于此属性进行设置。
此属性不会影响不在计算机上的玩家。
DevComputerMovementMode
此属性允许您在计算机上覆盖玩家的移动模式。
如果设置为 UserChoice,则玩家的移动模式将由他们在体验设置中设置的内容决定。否则,该模式将基于此属性进行设置。
此属性不会影响不在计算机上的玩家。
DevTouchCameraMovementMode
此属性允许您在触摸设备上覆盖玩家的相机模式。
如果设置为 UserChoice,则玩家的相机移动模式将由他们在体验设置中设置的内容决定。否则,该模式将基于此属性进行设置。
此属性不会影响不在触摸设备上的玩家。
DevTouchMovementMode
此属性允许您在触摸设备上覆盖玩家的移动模式。
如果设置为 UserChoice,则玩家的移动模式将由他们在体验设置中设置的内容决定。否则,该模式将基于此属性进行设置。
此属性不会影响不在触摸设备上的玩家。
EnableDynamicHeads
EnableMouseLockOption
此属性确定玩家是否可以默认切换鼠标锁定。
鼠标锁定将把玩家的光标锁定在屏幕中心。移动鼠标将旋转 Camera,而 Player 将相对于相机的当前旋转移动。
此属性设置 Player.DevEnableMouseLock 的值。
请注意,与 shift-lock 相关的 API 正在被弃用,因此建议使用 UserInputService.MouseBehavior 来锁定鼠标。
代码示例
该示例演示了如何启用和禁用玩家锁定鼠标的功能。
在这个示例中,我们使用一个 while true 循环每 5 秒切换一次 DevEnabledMouseLock 属性的状态,使其在 true 和 false 之间切换。虽然这个示例实际上用途不大,但它演示了如何通过 LocalScript 更改该属性。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
while true do
player.DevEnableMouseLock = not player.DevEnableMouseLock
task.wait(5)
end
HealthDisplayDistance
此属性设置该玩家看到其他 Humanoid 血条的距离,以 studs 为单位。如果设置为 0,则不显示血条。此属性默认设置为 100 studs。
要在玩家加入游戏后更改显示距离,您可以设置 Player.HealthDisplayDistance 属性。
如果 Humanoid 血条可见,您可以使用 Humanoid.DisplayDistanceType 设置显示类型。
代码示例
此示例演示了如何隐藏其他 Humanoid (玩家和NPC)的 健康条和名称。
通过将玩家的 Player.HealthDisplayDistance 和 Player.NameDisplayDistance 属性设置为 0 来实现。
如果您想显示健康条和名称,可以将属性设置为 大于 0 的值。例如,将属性设置为 100 意味着 玩家最多可以看到 100 Studs 外其他玩家的健康和名称。
若要修改玩家的默认值,可以更改 StarterClass.Player.HealthDisplayDistance 和 StarterClass.Player.NameDisplayDistance 属性的值。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0
LoadCharacterAppearance
此属性设置玩家的角色外观是否应该加载。
将其设置为 false 使得玩家没有衣物(包括帽子)、身体颜色、身体包裹或与玩家角色外观相关的任何其他内容。默认为 true。
将其设置为 true 将使玩家加载与玩家的 Player.CharacterAppearanceId 对应的外观。
如果使用了 Player:LoadCharacterWithHumanoidDescription(),设置 StarterPlayer.LoadCharacterAppearance 为 false 将是有利的,因为玩家的头像不是必需的,所有要装备在角色上的资产 ID 都将来自传递的 HumanoidDescription。
代码示例
这个示例演示如何禁用加载玩家角色的外观。 相反,玩家将以一个没有任何帽子、衬衫、裤子等的灰色模型加载。
这对于使用自定义服装和配饰的游戏非常有用。
请注意,如果角色已经生成,则此更改将在玩家重生或调用 Player:LoadCharacter() 函数之前不会生效。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CanLoadCharacterAppearance = false
LoadCharacterLayeredClothing
指示进入体验的角色是否将装备分层服装配件(尽管 Workspace.MeshPartHeadsAndAccessories 也需要在 Workspace 中启用)。
LuaCharacterController
NameDisplayDistance
设置该玩家看到其他 Humanoid 名称的距离。如果设置为 0,则名称被隐藏。此属性的默认值为 100 studs。
要在玩家加入游戏后更改显示距离,您可以设置 Player.NameDisplayDistance 属性。
如果 Humanoid 名称可见,您可以使用 Humanoid.DisplayDistanceType 设置显示类型。
代码示例
此示例演示了如何隐藏其他 Humanoid (玩家和NPC)的 健康条和名称。
通过将玩家的 Player.HealthDisplayDistance 和 Player.NameDisplayDistance 属性设置为 0 来实现。
如果您想显示健康条和名称,可以将属性设置为 大于 0 的值。例如,将属性设置为 100 意味着 玩家最多可以看到 100 Studs 外其他玩家的健康和名称。
若要修改玩家的默认值,可以更改 StarterClass.Player.HealthDisplayDistance 和 StarterClass.Player.NameDisplayDistance 属性的值。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0
RagdollDeath
UserEmotesEnabled
此属性确定加载角色时是否加载用户拥有的表情。将此属性设置为 false 禁用加载。开发者可以直接在 Studio 中设置此属性。
当禁用表情加载时,只要开发者选择通过在他们的游戏中添加表情来使用表情功能,表情用户界面仍然可以正常工作。
另请参见 Avatar Emotes,这是关于如何控制、定制和播放头像表情的文章。