Roblox 连接 是一种体验,您可以在其中呼叫朋友并进行聊天,作为您的虚拟形象,在共享的身临空间中。从开发者的角度来看,它是一种非复制锁定的体验,可以展示 SocialService 和 PlayerViewService 的调用相关方法和事件的一种消费方式。可能的使用案例无限,本指南提供了在 Roblox Connect 中使用的例子。
项目概览
开发者可以使用当前方法和事件将同步虚拟形象通信介绍到 Roblox 上的任何体验。一些值得注意的 Roblox Connect 功能亮点和呼叫隐私细节在下面分享。
环境切换器
为了提供更好的沉浸式交流体验,该项目包括一个 环境切换器 ,允许玩家从环境到环境移动。当在同一个场景方移动环境时,玩家角色通过 PivotTo() 重新定位。当移至另一个场景方的环境时,玩家通过 TeleportService 被传送到他们所需的位置。
此外,还实现了一个“握手”模型,以确保私人空间中的两个玩家在实际移动之前同意被移动。如果一个玩家拒绝更改环境的请求,整个交易将被取消,没有玩家被转移。
对于呼叫,传送到保留服务器,所有呼叫参与者都被传送到一起。如果这个传送条件未满足或传送本身失败,调用就结束了。

相机模式
Roblox Connect 在默认相机模式之外介绍了两种独特的相机模式,你可以使用它们来增强自己的体验。此外,在切换到各种不同的摄像头模式时,一个摄像头转换器可以让切换模式感觉无缝。

图中图
在 图中图 模式下,相机焦点是在你的呼叫伙伴上,你的角色的小视图漂浮在屏幕上。该模式还包括头部跟踪,本地玩家的移动受到限制。

电影效果
电影模式 尝试始终将玩家角色保持在你的相机视区内。玩家移动不受限制,当角色移动时,相机会检测到他们的移动并进行相应调整。

自由游戏
免费游戏模式使用默认 Roblox 角色相镜头,让您在移动时与呼叫伙伴交谈。你的合作伙伴的角色并不一定会在查看野中。
表情栏
项目的 表情栏 是 EmoteBar 开发模块的克隆版。从方块子里,模块包含了很多关键功能,但 Roblox Connect 需要几次特定更改,例如一次执行表情后将角色返回到“闲置闲”状态。

隐私
如果不在呼叫中的人被添加到保留服务器,或者已经在保留服务器上,呼叫就结束了。
API 实现
Roblox Connect 利用新的 SocialService 和 PlayerViewService 方法和事件来构建身临其境的通信平台。
SocialService:PromptPhoneBook() 被连接到起始大厅的呼叫按钮,以便玩家查看他们的联系列表并启动呼叫。在并行中,SocialService.PhoneBookPromptClosed事件连接到一个收听器,恢复按钮的可见性并重新定位相镜头。
SocialService:CanSendCallingInviteAsync() 方法被用来检查玩家是否有资格发送呼叫邀请。如果玩家不符合条件(不是 13+ 且没有 电话或身份证验证),会显示对话消息。此检查应在调用 PromptPhoneBook() 之前进行。
SocialService.CallInviteStateChanged 事件连接到隐藏呼叫按钮的听众,在玩家等待其他人回答呼叫请求时,释放屏幕空间。如果需要,可以使用此事件来显示“连接”状态。
SocialService:ShowSelfView() 和 SocialService:HideSelfView() 被连接到各种相机模式。具体地,调用者的自我视图在 图像对图 或 电影模式 中显示,并隐藏在 自由游戏 模式中。
PlayerViewService:GetDeviceCameraCFrame() 将设备映射到工作区相机的方向在 图像对图 模式中,提供更身临其境的体验。该方法利用了玩家的摄像头设备,仅适用于移动设备。