从IEnumerator获取数据

时间:2019-03-22 05:10:37

标签: unity3d httpwebrequest

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 :(得分:0)

调试此类问题的一种好方法是使用TryParse方法,在本例中为“ id = items [1]”。

另外,items [1]的字符串输出是什么? 这可能有助于阐明正在发生的事情。