예제 #1
0
 /// <summary>
 /// making a Get request for sending into server
 /// </summary>
 /// <param name="request"> request for sending </param>
 /// <param name="answ">callback for answer</param>
 void GetRequest(UnityWebRequest request, ReceiveAnswer answ)
 {
     if (m_onReceiveAnswer == null || m_onReceiveAnswer.Target == null)
     {
         ShowMenu();
         m_onReceiveAnswer += answ;
         StartCoroutine(GetText(request, answ));
     }
     else
     {
         m_request.Enqueue(new Request {
             m_request = request, m_answer = answ
         });
     }
 }
예제 #2
0
    /// <summary>
    /// receive text answer from server request
    /// Answer will be saved to s_answer
    /// </summary>
    /// <param name="request"> request to server. Should be prepared </param>
    /// <param name="answ">callback for answer</param>
    private IEnumerator GetText(UnityWebRequest request, ReceiveAnswer answ)
    {
        _requestTime = Time.time;
        _sCurrent    = request;
        yield return(request.SendWebRequest());

        if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
        {
            _sAnswer = null;
            Debug.Log(request.error);
        }
        else
        {
            // Show results as text
            //Debug.Log(request.downloadHandler.text);

            // and retrieve results as binary data
            _sAnswer = request.downloadHandler.text;
        }
    }
예제 #3
0
    /// <summary>
    /// waiting for recive an answer and closing menu
    /// Update is called once per frame
    /// </summary>
    public override void Update()
    {
        try {
            base.Update();
            if (_sCurrent != null && _sCurrent.isDone && _sAnswer != null)
            {
                //The previous menu should be activated first!
                Resume();
                m_onReceiveAnswer(_sAnswer);
                m_onReceiveAnswer = null;
                _sCurrent         = null;
                _sAnswer          = null;
                if (m_request.Count > 0)
                {
                    Request req = m_request.Dequeue();
                    GetRequest(req.m_request, req.m_answer);
                }
            }

            if (Time.time - _requestTime > 2.0f)
            {
                if (m_request.Count > 0)
                {
                    Request req = m_request.Dequeue();
                    GetRequest(req.m_request, req.m_answer);
                }
                m_onReceiveAnswer = null;
                _sCurrent         = null;
                _sAnswer          = null;
                Resume();
            }
        }
        catch (Exception ex)
        {
            Debug.LogError("NetworkManager Update Exception:" + ex.Message);
        }
    }
예제 #4
0
    /// <summary>
    /// Get text from server. Could be settings or save names
    /// </summary>
    /// <param name="name"> user name </param>
    /// <param name="requestId"> could 1 for settings or 2 for save name </param>
    /// <param name="answ">callback for answer</param>
    public void GetText(string name, int requestId, ReceiveAnswer answ)
    {
        UnityWebRequest www = UnityWebRequest.Get(CSiteName + "id=" + requestId.ToString() + "&name=" + name);

        GetRequest(www, answ);
    }
예제 #5
0
    /// <summary>
    /// Get save from server
    /// </summary>
    /// <param name="name"> user name  </param>
    /// <param name="saveName"> save name </param>
    /// <param name="answ">callback for answer</param>
    public void GetText(string name, string saveName, ReceiveAnswer answ)
    {
        UnityWebRequest www = UnityWebRequest.Get(CSiteName + "save=" + saveName + "&name=" + name);

        GetRequest(www, answ);
    }
예제 #6
0
    ///<param name = "answ" > callback for answer</param>
    public void GetLocalizationLanguages(ReceiveAnswer answ)
    {
        UnityWebRequest www = UnityWebRequest.Get(CSiteName + "id=" + 7 + "&name=" + "loc");

        GetRequest(www, answ);
    }
예제 #7
0
    /// <summary>
    /// Get one localization item
    /// </summary>
    /// <param name="loc"> localization name </param>
    /// <param name="id"> request id. 1 - UI, 2 - items, 3 - history </param>
    /// <param name = "answ" > callback for answer</param>
    public void GetLocalization(string loc, int id, ReceiveAnswer answ)
    {
        UnityWebRequest www = UnityWebRequest.Get(CSiteName + "id=" + (id + 3) + "&name=" + loc);

        GetRequest(www, answ);
    }