Skip to main content

获取玩家

这些节点用于获取单个玩家、一组玩家或所有玩家。

Networking.get LocalPlayer​

VRCPlayerApi

note

请注意,此函数是 Networking 类的成员,但在此处包含。

本地玩家是此 Udon 脚本当前正在其上运行的玩家——或者说,本地玩家就是你。认识自己非常重要!

GetPlayerCount​

int

获取调用时房间实例中的实际玩家数量。

GetPlayers​

VRCPlayerApi[]

这是获取世界中所有玩家的方法,以便你可以在 For 循环中遍历它们并应用设置、进行更改、查找特定名称等。

最简单的方法是使用不接受任何参数的版本。

GetPlayers 调用的最小实现。更好的方法是将 VRCPlayerApi[] 构造为变量以便重用。

上面的方法有效,但每次使用都会分配内存,这意味着它每次都会重新构造 VRCPlayerApi 数组。

如果你经常使用此方法(例如每帧),则应改用非分配版本,即传入存储为变量的 VRCPlayerApi 数组以便每次重用。使用此方法需要注意的一点是,如果世界中的玩家数量超过数组容量,多余的玩家将被遗漏。为支持动态玩家数量,你可以使用下面演示的技术,初始创建具有预定大小的数组,然后当世界中的玩家数量超出数组大小时根据需要扩展。

定期使用 GetPlayers 的更高效模式。此方法将 VRCPlayerApi[] 构造为可重用的变量,仅在世界中玩家数量超出容量时才构造新数组。

GetPlayerById​

int

获取给定玩家 ID 对应的 VRCPlayerApi 对象(如果存在)。

get playerId​

int

获取缓存的 PlayerId,如果尚未缓存则调用 GetPlayerId。

GetPlayerId​

int

从源获取玩家的网络 ID。

玩家标签系统​

此系统是一种快速简便的方式,可以将字符串分配给玩家,而无需创建自己的变量和集合。

SetPlayerTag / GetPlayerTag​

设置:string, string

获取:string

设置稍后可以查找的字符串变量。例如,你可以将烹饪游戏中玩家的"角色"设置为"厨师"或"顾客"。然后你可以为"role"调用 GetPlayerTag 并返回"厨师"或"顾客"。

ClearPlayerTags​

VRCPlayerApi

移除你在玩家上设置的所有标签。

GetPlayersWithTag​

caution

当前无法使用。返回一个 List,但在 Udon 中不可用。

你将能够传入一个 VRCPlayerApi 对象数组和一个标签,该方法将使用设置了该标签的玩家填充数组。