Вам понадобится сервер для хранения ваших данных, даже 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 для хранения дополнительной информации.