有什么办法可以在统一为Android构建游戏后加载文本

时间:2018-09-03 07:56:03

标签: android json firebase unity3d

我创建了一个小型的Android游戏,其中包含一些角色名称和一些值,我想控制名称和值,以便在需要时更改值。我在网上搜索,但没有找到任何快速解决方案。有什么方法可以通过某些Web服务在线控制价值,以便我可以在线更改价值,这将在我的游戏中产生变化?

2 个答案:

答案 0 :(得分:1)

您将需要一台服务器来存储您的数据,即使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文件以存储更多信息。

答案 1 :(得分:0)

是的,这是可能的!您可以使用Mongo,Redis或MySQL之类的数据库,这取决于您的价值!并使用POST或GET HTTP请求获取值!对于后端,您可以使用Golang,PHP或任何您可以使用的东西!如果您的游戏有很多用户,那么我的报价就是Golang! 而且,您可以使用以下链接与POST统一使用:

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

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

祝你好运!如果您对Golang或PHP代码有疑问,可以问我! :))