PUN 2 获取自定义属性

杰克塞本

我最近承担了 Photon 中自定义属性的任务。我已经能够弄清楚如何设置自定义属性,但无法获得自定义属性。我的哈希表在我的播放器控制器脚本中,而我设置(以及我想要获取)属性的位置在循环脚本中。

从圆形系统:

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

        foreach (var item in PhotonNetwork.PlayerList)
        {
            var itemPhotonView = (PhotonView)item.TagObject;

            itemPhotonView.RPC("SetPlayerTeam", item, citiString);
        }

        for (int i = 0; i < angelCount;)
        {
            var item = PhotonNetwork.PlayerList[Random.Range(0, PhotonNetwork.PlayerList.Length)];
            var itemPhotonView = (PhotonView)item.TagObject;

            if (/* random player selected's, AKA, item's team == citiString */)
            {
                itemPhotonView.RPC("SetPlayerTeam", item, angelString);

                i++;
            }
        }

        yield return null;
        //the reason this is in an IEnumerator with 'yield return null'
        //is because I plan to add a waiting period once I figure this out
        //it's for the game loop
    }

从玩家控制器:

[PunRPC]
        public void SetPlayerTeam(string teamString)
        {
            //in the class:     private ExitGames.Client.Photon.Hashtable playerProperties; 
            if (!playerProperties.ContainsKey("team"))
            {
                playerProperties.Add("team", teamString);
            }
            playerProperties["team"] = teamString;
            PhotonNetwork.LocalPlayer.SetCustomProperties(playerProperties);
        }

在回合开始时,一定比例(在本例中为 1/3)的玩家被选为“天使”。这里需要检查,因为在多个天使的情况下,您不希望已经存在的天使算作新的更改。(此外,如果我打算使用自定义属性,了解如何获取自定义属性可能很重要。)如果我不在 RoundSystem 中包含检查,则结果是 2 个公民和 1 个天使(在测试中使用 3球员)。另外,如果您看到任何可以改进的意大利面条式代码,请不要犹豫告诉我。:)

亚历山大·斯捷潘诺夫

使用Player.CustomProperties字典访问玩家的自定义属性。

    foreach (var item in PhotonNetwork.PlayerList)
    {
        if (item.CustomProperties.ContainsKey("team"))
        {
            Debug.Log(item.CustomProperties["team"]);
        }
    }

此外,RoundSystem 可以实现 IInRoomCallbacks 接口并侦听 OnPlayerPropertiesUpdate 以捕捉团队更新的确切时刻。https://doc-api.photonengine.com/en/pun/v2/interface_photon_1_1_realtime_1_1_i_in_room_callbacks.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

使用<select>在select2中获取自定义数据属性

在select2中使用Ajax时无法获取自定义属性值

Java / LibGDX:在 box2D 碰撞中获取自定义对象属性

如何获取自定义Azure AD B2C用户配置文件属性的值

Azure AD B2C - 通过令牌中的图形 API 获取自定义属性集

PUN 2 Unity多人FPS UI同步

如何在Caren Model Magento 2中获取自定义字段结帐地址的值

无法在 2checkout 响应中获取自定义参数

Azure B2C:获取自定义策略的内置声明列表

获取自定义属性值

PUN 2 Unity Photon.LoadLevel、IOnEventCallback 和 RaiseEvent

如何在spring-security-oauth2中的资源服务器中获取自定义UserDetailService对象?

如何从OAuth2授权服务器/用户端点获取自定义用户信息

将str_wrap()与expression()结合使用以获取自定义标题以适合ggplot2中的图

在 PUN2 中加入房间之前,如何通过网络从大厅中的客户端获取或共享一些数据给其他人?

获取自定义属性属性内的枚举类型

从特定对象的属性/字段获取自定义属性

jQuery-从所选选项获取自定义属性

使用jQuery获取自定义属性

使用LINQ to XML获取自定义属性值

在PHP中获取自定义属性值

从shortcode属性获取自定义分类法

如何获取自定义数据属性

使用Javascript或Jquery获取自定义属性的值

无法从支持Bean获取自定义组件属性

用于获取自定义属性值的 XPath 查询

如何获取自定义属性的通用集合

如何从Winrt的装配中获取自定义属性