我有一个游戏,想要记录自己的分析数据。没有明确的位置,是否有类似于 SystemInfo
类的东西可以提供玩家的大致位置?
我知道可以利用 GPS,但是我不想让事情变得复杂。只需要简单的城市或国家即可。
请给予建议。
我有一个游戏,想要记录自己的分析数据。没有明确的位置,是否有类似于 SystemInfo
类的东西可以提供玩家的大致位置?
我知道可以利用 GPS,但是我不想让事情变得复杂。只需要简单的城市或国家即可。
请给予建议。
我也遇到了这个问题,所以我想提供一个尽可能简单的解决方案。不幸的是,这并不容易:
[Serializable]
public class IpApiData
{
public string country_name;
public static IpApiData CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<IpApiData>(jsonString);
}
}
public static IEnumerator SetCountry()
{
string ip = new System.Net.WebClient().DownloadString("https://api.ipify.org");
string uri = $"https://ipapi.co/{ip}/json/";
using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
{
yield return webRequest.SendWebRequest();
string[] pages = uri.Split('/');
int page = pages.Length - 1;
IpApiData ipApiData = IpApiData.CreateFromJSON(webRequest.downloadHandler.text);
Debug.Log(ipApiData.country_name);
}
}
这将轻松获取国家信息。如果你想要更改为城市或其他内容,你只需要按照此链接中的说明给IpApiData
添加一些字段即可:https://ipapi.co/api/#complete-location
你可以先获取玩家的IP地址。我认为这会有所帮助answers.unity.com/questions/518346/get-ipv4-adress。 然后使用任何网站IP追踪器查找位置。(例如ipstack)