繁体   English   中英

PUN 2 获取和设置自定义属性

[英]PUN 2 Getting and Setting Custom Properties

自从 UNet 贬值以来,我对 Photon 还是比较陌生。 我在获取和设置本地自定义属性时遇到问题。 我正在尝试选择两个不同的团队(球员和天使)。 每个玩家开始时都是一个旁观者。 一定比例的玩家被选为天使,其余的则被分配为玩家。 我可以设法获取和设置随机选择的玩家的属性,但我似乎无法为其余玩家分配值。 代码片段如下。

private IEnumerator TeamBalance()
    {
        angelCount = Mathf.Floor(PhotonNetwork.PlayerList.Length * angelPercent);
        currentAngels = angelCount;

        for (int i = 0; i < angelCount;)
        {
            int index = Random.Range(0, PhotonNetwork.PlayerList.Length);
            if (PhotonNetwork.PlayerList[index].CustomProperties["team"].ToString() == "spectator")
            {
                PhotonNetwork.PlayerList[index].CustomProperties["team"] = "angel";
                i++;
            }
        }

        foreach (var player in PhotonNetwork.PlayerList)
        {
            if (player.CustomProperties["team"].ToString() == "spectator")
            {
                player.CustomProperties["team"] = "player";
            }
        }

        yield return null;
    }

3 名玩家的最终结果最终选择了 1 位天使,但还剩下 2 位观众。

您需要使用 Player.SetCustomProperties 函数来设置属性,而不是直接分配它们。 这允许 PUN 跟踪已更改的内容并正确更新。 https://doc-api.photonengine.com/en/pun/v2/class_photon_1_1_realtime_1_1_player.html#a0c1010eda4f775ff56f8c86b026be41e

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM