Как исправить ошибку при загрузке Json с сервера - PullRequest
0 голосов
/ 18 сентября 2019

Я хочу получить JSON с сервера, но эта ошибка появляется в консоли:

Вы пытаетесь создать MonoBehaviour, используя ключевое слово 'new'.Это не разрешеноMonoBehaviour s можно добавить только с помощью AddComponent().Кроме того, ваш сценарий может наследоваться от ScriptableObject или вообще не иметь базового класса
UnityEngine.MonoBehaviour:.ctor()

JSON похож на список имен, например

[«Leaderboard01», «leaderboard02»,…]

Это мой код:

public class BC_PlayerInfo : MonoBehaviour 
{
    public string LeaderboardId = "";

    public BC_PlayerInfo(JsonData jsonData)
    {
        LeaderboardId = SafeGet(jsonData, "leaderboardId");
    }

    private string SafeGet(JsonData jsonData, string key)
    {
        var returnValue = "";

        try
        {
            returnValue = jsonData[key].ToString();
        }
        catch (Exception e)
        {
        }

        return returnValue;
    }
}

И ...

private void GetLeaderboadsList()
{
    WebClient webClient = new WebClient();

    string result = webClient.DownloadString("https://xxxxxxxxx.com/wp-json/vendor/v1/carambolaEventsNames");

    Debug.Log("Usuario creado en la WEB: " + result);

    List<string> leaderboardIds = new List<string>();

    lblist.Clear();

    var leaderboardsList = JsonMapper.ToObject(result);

    foreach (JsonData leaderboardId in leaderboardsList) lblist.Add(new BC_PlayerInfo(leaderboardId));

    foreach (var leaderboardId in lblist)
    {
        string _leaderboardId = leaderboardId.LeaderboardId;
        Debug.Log("LeaderboardName: " + _leaderboardId);
    }
}

Что такоеЯ делаю не так?

1 Ответ

3 голосов
/ 18 сентября 2019

Вы не можете создавать экземпляры объектов, которые наследуются от MonoBehavior, используя эту строку:

lblist.Add(new BC_PlayerInfo(leaderboardId));

вы создаете новый экземпляр Monobehavior, который не разрешен Unity.См. Этот пост для более подробной информации: https://answers.unity.com/questions/653904/you-are-trying-to-create-a-monobehaviour-using-the-2.html

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

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