簡體   English   中英

unity C# 如何獲取玩家的國家、城市或位置

[英]Unity C# How to get country, city or location of a player

我有一個游戲,我試圖保留自己的分析。 沒有精確定位,是否有類似於SystemInfo class 的東西可以給出播放器的大致位置?

我知道我可以利用 GPS,但我不想讓事情變得復雜。 一個簡單的城市或國家就可以了。

請指教。

您可以向用戶詢問他們的詳細信息,也可以向您的 web 服務器發送請求,該服務器使用ipdata.co之類的東西來跟蹤 IP 地址的來源。

我也有這個問題,所以我想做一個盡可能簡單的解決方案。 不幸的是,這並不容易:

[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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM