首页 > 解决方案 > 有没有办法在统一为android构建游戏后加载文本

问题描述

我创建了一个具有一些角色名称和一些值的小型 android 游戏,我想控制名称和值,以便在需要时更改值。我在网上搜索,但我没有找到任何快速的解决方案。有没有办法通过一些网络服务在线控制价值,这样我就可以在线改变价值,它会在我的游戏中创造变化?

标签: androidjsonfirebaseunity3d

解决方案


你需要一个服务器来存储你的数据,甚至 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 文件以存储更多信息。


推荐阅读