首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Unity中的GameSparks检索属性

如何从Unity中的GameSparks检索属性
EN

Stack Overflow用户
提问于 2016-01-31 07:00:58
回答 2查看 957关注 0票数 0

我快疯了..。我错过了什么,我看不到什么?!?!

我在gameSparks管理区域中创建了一个名为"GAME_SETTINGS“的属性,并在其中包含了以下内容:

代码语言:javascript
复制
{
    "AppVersionIOS": 1,
    "AppVersionAndroid": 1
}

然后,我尝试在Unity中检索它,如下所示:

代码语言:javascript
复制
new GameSparks.Api.Requests.GetPropertyRequest().SetPropertyShortCode("GAME_SETTINGS").Send((response) => {
    if (!response.HasErrors) {
        Debug.Log("Setting Achieved: "+response.JSONString);
    } else {
        Debug.Log("Error Getting Settings");
    }
});

我可以看到我正在获取Debug.Log中的设置:

代码语言:javascript
复制
Setting Achieved: {"@class":".GetPropertyResponse","property":{"AppVersionIOS":1,"AppVersionAndroid":1},"requestId":"XXXXXXXXXXXXXXX","scriptData":null}

我的问题是..。如何获取字典中的AppVersionIOS和AppVersionAndroid属性,以便从其他脚本中调用它们……

非常希望在这件事上得到帮助,并提前表示感谢:-)

EN

回答 2

Stack Overflow用户

发布于 2016-02-01 18:32:43

我实际上在GameSparks工作,并注意到你的问题,所以建立一个帐户来回答你。在JSON中返回的属性值是可以为空的类型:https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

最佳实践是在值被缓存到Dictionary或其他地方之前对其进行解析。

下面的代码应该允许您获取这些属性,然后您可以根据需要将它们存储在字典中。

代码语言:javascript
复制
 public void GetProperties()
{
    new GameSparks.Api.Requests.GetPropertyRequest()
        .SetPropertyShortCode("GAME_SETTINGS")
        .Send((response) =>
        {
            if (!response.HasErrors)
            {
                print(response.JSONString);
                int androidProperty = (int)response.Property.GetInt("AppVersionAndroid");
                int IOSProperty = (int)response.Property.GetInt("AppVersionIOS");
                print("AndroidProperty:" + androidProperty);
                print("IOSProperty:" + IOSProperty);
            }
            else
            {
                Debug.LogWarning(response.JSONString);
            }

        });
}

希望这能解决你的问题。如果您有任何其他问题,请随时前往我们的网站,并与我们一起记录门票。你好,帕特里克。

票数 2
EN

Stack Overflow用户

发布于 2016-01-31 08:12:34

注意:这个答案假设没有办法将它转换成一个很好的对象,这样你就可以很容易地操作/解析它,所以它自己使用一些类来转换它。但是,您的API很可能在某个地方提供了这样的函数,因此您最好再次查看文档。我猜它在 附近。

您已经有了JSON文档,所要做的就是解析它。让http://json2csharp.com/为您将JSON转换为类布局,您将获得

代码语言:javascript
复制
public class Property
{
    public int AppVersionIOS { get; set; }
    public int AppVersionAndroid { get; set; }
}

public class RootObject
{
    public string __invalid_name__@class { get; set; }
    public Property property { get; set; }
    public string requestId { get; set; }
    public object scriptData { get; set; }
}

现在只需获取字符串并将其序列化为RootObject

代码语言:javascript
复制
new GameSparks.Api.Requests.GetPropertyRequest().SetPropertyShortCode("GAME_SETTINGS").Send((response) => {
    if (!response.HasErrors) {
        Debug.Log("Setting Achieved: "+response.JSONString);
        //Serialization
        var info = JsonUtility.FromJson<RootObject>(response.JSONString);

        //Print the AppVersionIOS property
        Debug.Log("App Version iOS: " + info.Property.AppVersionIOS);
    } else {
        Debug.Log("Error Getting Settings");
    }
});

您可能需要在类的数据类型中进行一些修改(例如,如果其中可以有一个实际的字符串,则将object scriptData设置为string scriptData ),但应该就是这样。玩得开心。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35108280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档