玩家已经在体验中取 screenshots 来纪念有趣的时刻。 自拍模式 开发者模块 让玩家捕捉那个时刻的更清晰的记忆,而不是聊天窗口或玩家列表的支持,还支持过滤效果、隐藏其他角色和伪装。
模块使用
安装
要在体验中使用 自拍模式 模块:
确保 模型排序 已选择,然后单击 查看所有 按钮为 类别 。
找到并单击 开发者模块 地瓦片。
找到 自拍模式 模块,然后单击它,或者拖放到3D视查看中。
在 Explorer 窗口中,将整个 SelfieMode 模型移到 ServerScriptService 。运行体验时,模块将分配到各个服务并开始运行。
配置
模块预配置为大多数使用场景,但您可以通过 配置 函数轻松自定义。
在 StarterPlayerScripts 中,创建一个新的 LocalScript 并将其重命名为 配置自拍模式 。
将以下代码粘贴到新脚本中。
本地脚本 - 配置自拍模式local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
角色移动
在自拍模式中,可能有助于防止玩家的角色在移动时移动。您可以通过将 disableCharacterMovement 设置为 true 在 配置 调用中实现此目标。
本地脚本 - 配置自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
自拍模式动作
自拍模式 包括以下 行动 ,其中您可以使用 激活行动 、 0>禁用行动0> 和 3>切换行动3> 功能,或通过 6>操作激活6> 和 9>操作禁用 9> 事件来检测。
深度-的-田
默认情况下, 自拍模式 会显示一个通用的 深度-of-field 效果(背景模糊),当玩家切换操动作时。
要更改默认的深度 of 场景效果,请将 depthOfFieldEffect 设置为您自己的 DepthOfFieldEffect 实例在 配置 调用中。
本地脚本 - 配置自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
锁定目光
锁定目光切换会让玩家的角色在自拍姿势设置时,在一种现实的范围内查看相机。
隐藏其他人
默认情况下,其他角色会在玩家的角色旁边显示。玩家可以通过单击 隐藏其他角色 按钮来获得完美的单独射击。当它打开时,其他角色会隐藏出视,直到操作被关闭。
过滤器
过滤器行动允许玩家从选项 Pop 、 Soft 、 Antique 、 2> Cute2> 、 5> Dramatic5> 和 8> Monochrome8> 中应用预设过滤器。
姿势
该 姿势 动作允许玩家从选项 欢呼 、 拍手 、 2> 海豚2> 、 5> 漂浮5> 、 8> 吉他
API 引用
类型
行动
每个操作都由一个典型的键值组表示:
钥匙 | 类型 | 描述 |
---|---|---|
name | 字符串 | 动作的名称,在工具提示中显示。 |
description | 字符串 | 示例操动作的描述,在工具提示中显示 名称 。 |
icon | 字符串 | 动作图标的资产ID。 |
activeIcon | 字符串 | 作为“有效”状态下“行动图标”的资产ID。 仅能用于父操作,不能用于子操作。 |
actions | 表 | 可选的子操作列表。这允许您创建各种其他操作的子菜单。 |
parent | 行动 | 操动作的父级;这仅适用于子操作和指向它的操作。 |
onActivated | 函数 | 玩家激活操作或子操作时运行的可选调用函数。通常,如果操作包含子操作,只有子操作需要定义调用来知道玩家激活了子操作而不是简单地“扩展”父操动作。 |
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
枚数
自拍模式。
自拍模式 包含多个操作。您可以使用此枚列表使用“激活操作”、“0>禁用操作0>”和“ 3>切换操作 3>”功能。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 激活“过滤器”动作SelfieMode.activateAction(SelfieMode.Action.Filter)
函数
配置
通过 config 表中的以下键/值来覆盖默认配置选项。此功能仅从 LocalScript 中调用。
钥匙 | 描述 | 默认 |
---|---|---|
disableCharacterMovement | 如果是真的,防止角色在自拍模式打开时移动。 | 否 |
depthOfFieldEffect | 玩家切换<a href="/reference/engine/datastores">深度</a>操作时出现的可选定的 Class.DepthOfFieldEffect 动作例。 |
本地脚本 - 配置自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
打开自拍模式
玩家通常会打开自镜头模式使用屏幕右侧的“相机”按钮,但此功能可以通过代验证码打开。当实现自定义按钮如下所示时,您应该禁用默认按钮通过 设置HudButtonEnabled 。此功能只能从 LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- 移除默认按钮
SelfieMode.setHudButtonEnabled(false)
-- 连接自定义按钮
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
关闭自拍模式
玩家通常会关闭自拍模式使用 ⊗ 按钮在屏幕底部,但此功能允许您关闭它通过验证码。只能从 LocalScript 调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.closeSelfieMode()
是否自动开启
如果自拍模式作为玩家行为的结果或通过 true 来打开,返回 true。 此函数只能从 LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
设置HudButtonEnabled
设置是否显示自拍模式的默认按钮。 有助于通过自定义 UI 按钮实现自拍模式。 此功能只能从一个 Class.LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- 移除默认按钮
SelfieMode.setHudButtonEnabled(false)
-- 连接自定义按钮
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
获取动作
通过 自拍模式 枚列获得一个 行动 类型。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
激活Action
程序激活一个默认的 行动 。这与玩家从行动条中切换行动时相同。只能从 LocalScript 调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 激活“过滤器”动作SelfieMode.activateAction(SelfieMode.Action.Filter)
禁用操作
程序化地禁用一个默认的 行动 。这与玩家从行动条中切换行动关闭时相同。只能从 LocalScript 调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 关闭“过滤器”动作SelfieMode.deactivateAction(SelfieMode.Action.Filter)
切换动作
切换一个 动作 在关闭时,或切换它在开启时。这与玩家从 action 条中单击动作时返回的新“是否切换”状态相同。只能从 LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("Activated", lockGazeAction.name)elseprint("Deactivated", lockGazeAction.name)end
设置主题
配置自拍模式主题,包括文本大小、字体、按钮/提示颜色等。此功能只能从 LocalScript 调用。
钥匙 | 描述 | 默认 |
---|---|---|
textSize | 所有文本的大小。 | 16 |
font | 用于所有 UI (Enum.Font) 的字体。 | GothamMedium |
padding | 主要用于放置用户界面元素( UDim )。 | (0,12) |
paddingSmall | 用于在元素之间应用微妙边缘的小型垫子( UDim )。 | (0,6) |
paddingScreen | 用在屏幕边缘上的垫子为自拍模式提供呼吸室(UDim)。 | (0,24) |
backgroundColor | 用于显示操作的背景颜色( Color3 )。 | [0, 0, 0] |
scrollBarColor | Class.ScrollingFrame 元素的模块颜色(Color3)。 | [255, 255, 255] |
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
设置启用
设置是否启用自拍模式。禁用时,所有模块的所有界面都将移除,所有事件都将断开。此功能只能从 LocalScript 调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setEnabled(false)
事件
自拍模式打开
玩家开启自拍模式或者调用 openSelfieMode 时触发。该事件只能在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)
自拍模式关闭
玩家关闭自拍模式或者调用 closeSelfieMode 时会触发此事件。此事件只能在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)
已激活
激活时发射,这可能是主要激活如 深度 、 锁定目标 或 隐藏其他 ;或者它可能是子激活如 2>过滤器2> 或 5>姿势5> 。 连接到的函数只能连接在 <
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
已禁用
参数 | |
---|---|
动作:自拍模式。操作 | 未激活的行动 。 |
主要操作或子操作被禁用时触发。 连接的函数接受禁用的 操作 。此事件仅可在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
已更改
当 过滤器 应用或移除时,发射。连接的函数接收新的过滤器名称和旧的过滤器名称。此事件只能在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter changed from", oldFilter, "to", newFilter)
end)
oseChanged
当 姿势 应用或移除时,发射。 连接的函数接受新的姿势名称和旧的姿势名称。 此事件只能在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose changed from", oldPose, "to", newPose)
end)