我正在开发一个多人游戏。我有一个在Swagger.io上开发API的朋友。所以我的问题是:
我想使用我可以使用的任务函数,而不是团结自己的UnityWebRequest函数。我负责做一些研究,我写了以下代码。
private async Task<T> Send<T>(string service, object obj)
{
RestClient client = new RestClient(baseUrl);
RestRequest request = new RestRequest(service)
{
RequestFormat = DataFormat.Json,
Method = Method.POST,
};
#if UNITY_ANDROID
uniqueID = SystemInfo.deviceUniqueIdentifier;
platform = "1";
#endif
#if UNITY_IOS
uniqueID = UIDevice.identifierForVendor
platform = "0";
#endif
request.AddHeader("DeviceID", uniqueID);
request.AddHeader("BundleID", Application.identifier);
request.AddHeader("BuildID", "0");
request.AddHeader("Platform", platform);
request.AddHeader("Version", "0");
request.AddJsonBody(obj);
var response = await client.ExecuteAsync(request);
if (response.Content != null && response.StatusCode == HttpStatusCode.OK)
{
var jsonSerializerSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore };
var result = JsonConvert.DeserializeObject<T>(response.Content, jsonSerializerSetting);
return result;
}
else
{
return default;
}因为它是一个异步函数,所以我调用它时没有任何问题。就像这样:
我有一些类可以响应其他类:
[Serializable]
public class WelcomeRequest : Response
{
public string Location;
public string Language;
}
[Serializable]
public class WelcomeRequest : Response
{
public string Location;
public string Language;
}[Serializable]
public class WelcomeResponse : Response
{
public WelcomePayload Payload;
}
[Serializable]
public class WelcomePayload : Response
{
public Player Player;
public Settings Settings;
public Season Play;
public Season Purchase;
public Game GameOfSeason;
public Game[] Games;
public double PrizePool;
}(我知道这是一个很大的项目,有很多子类。我不想让你为我写代码,我只想让你解释我写的代码的逻辑和一个我可以参考的例子。更别说是我一个人干的。除了你,我没有任何朋友可以帮助你。)我能够从服务器接收json格式的文件。但是由于这个函数只返回对象,所以我不能分配类的子对象。我是否需要再次将其转换为json格式并反序列化它?因为我以前使用过Firebase基础设施,所以我能够毫无问题地进行通信。我寻找雷斯夏普统一教程,但找不到任何。你能帮帮我吗?至少如果你指导我,我会自己解决这个问题。很抱歉,如果我没有正确地表达我自己,因为这是我在这个网站上的第一篇文章,我不太清楚的规则。感谢你们所有人。
https://stackoverflow.com/questions/70391065
复制相似问题