Получение данных из IEnumerator - PullRequest
0 голосов
/ 22 марта 2019

HI В этом проекте 2 сценария Сценарий A и сценарий B.

Внутри сценария A

public class asd : MonoBehaviour
{
    private const string URL = "http://192.168.10.89:8080/GameManage/userInfo/";
    public Text responseText;
    public Item myItem;
    public string[] items;
    public string id;
    public string coin;
    public int idINT;
    public int idcoin;
    public int score = 100;



 public void Request()
    {
        WWW request = new WWW(URL);
        StartCoroutine(onResponse(request));
    }
public IEnumerator onResponse(WWW req)
    {
        yield return req;
        responseText.text = req.text;
        string banana = responseText.text;
        Debug.Log(banana);
        items = banana.Split(':', ',');
        id = items[1];
        idINT = int.Parse(id);
        Debug.Log("id is = " + id);
        Debug.Log(id.GetType());
        Debug.Log("INT id is" + idINT.GetType());
        coin = "34";
        idcoin = int.Parse(coin);
        Debug.Log("Coin is = " + coin);
    }

Я хочу получить значение из сценария A и использовать его в сценарии B

  public class PostJsonDataScript : MonoBehaviour
{

private asd ASD;
 private void Start()
    {
        ASD = FindObjectOfType<asd>();
    }



private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log(ASD.idINT +  " asd int");

        }
    }

Когда я отлаживаю журнал из скрипта B. Я всегда получаю значение 0. Почему я не получаю значение из сценария A

{В конкретном случае должна быть возвращена idINT 1}

1 Ответ

0 голосов
/ 23 марта 2019

Хороший способ отладить проблему, подобную этой, - это метод TryParse, в данном случае для "id = items [1]".

Кроме того, что представляет собой строковый вывод items [1]?Это, вероятно, поможет пролить свет на происходящее.

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