Есть ли способ загрузить текст после сборки игры на андроид в единстве - PullRequest
0 голосов
/ 03 сентября 2018

Я создал небольшую игру для Android с именами персонажей и значениями. Я хочу управлять именами и значениями, чтобы я мог менять их в любое время. Я искал в Интернете, но я не нашел быстрого решения для этого. Можно ли каким-либо образом контролировать значения в Интернете с помощью какого-либо веб-сервиса, чтобы я мог изменить значение в Интернете, и это приведет к изменениям в моей игре?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вам понадобится сервер для хранения ваших данных, даже GitHub сделает это, и у него есть бесплатный план. Тогда ваш код должен быть спроектирован таким образом, чтобы он соответствовал этим требованиям.

Здесь может быть короткий пример. Вот что у вас есть на github:

{
    "characterName" : "Buldor",
    "strength" : 10
}

Вам понадобится C # версия этого:

[Serializable]
public class Response
{
   public string characterName = null;
   public int strength = 0;
}

Тогда вам понадобится загрузочный экран в вашей игре, где вы будете получать информацию с сервера и назначать ее. Это означает, что ваша игра больше не действует в автономном режиме (или вы использовали ранее загруженные или стандартные значения).

void Start()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        using (UnityWebRequest www = UnityWebRequest.Get("github_url"))
        {
            yield return www.Send();

            if (www.isNetworkError || www.isHttpError)
            {
                Debug.Log(www.error);
            }
            else
            {
                // Show results as text
                Debug.Log(www.downloadHandler.text);

                Response res = JsonUtility.FromJson<Response>(www.downloadHandler.text);
                PlayerPrefs.SetString("characterName", res.characterName);
                PlayerPrefs.SetInt("strength", res.strength);
            }
        }
    }
}

И, наконец, у вас есть класс персонажей:

public class Character : MonoBehaviour
{
     void Start(){
         string characterName= PlayerPrefs.GetString("characterName", "OldName");
         int strength = PlayerPrefs.GetInt("strength", 0);      
     }
}

Итак, чтобы подвести итог, сначала создайте json для хранения на сервере, получите URL-адрес местоположения. Затем загрузите файл, это может быть json, xml, txt или что-то еще, но убедитесь, что вы знаете, как его анализировать, и у json уже есть все, что проще. Затем проанализируйте файл и сохраните значения либо в PlayerPrefs, как я, либо непосредственно в проигрывателе.

Затем расширьте файл json для хранения дополнительной информации.

0 голосов
/ 03 сентября 2018

Да, это возможно! Вы можете использовать базу данных, такую ​​как Mongo, Redis или MySQL, это зависит от вашей ценности! И работать с запросом POST или GET HTTP, чтобы получить значение! А для серверной части вы можете использовать Golang, PHP или все, что можете! Если у вас есть игра со многими пользователями, мое предложение - Golang! И вы можете использовать эти ссылки для работы и POST Get в единстве:

https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.Get.html

https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.Post.html

Удачи! Если у вас есть вопрос о Golang или PHP-коде, вы можете спросить меня! :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...