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