using
UnityEngine;
using
System.Collections;
public
class
Test : MonoBehaviour {
// Use this for initialization
IEnumerator Start () {
//for Lambda
StartCoroutine(ReturnValue( (x) =>
{
Debug.Log(x);
}
));
//for local value
int
a = 0;
yield
return
StartCoroutine(ReturnValue( (x) =>
{
a = x;
}
));
Debug.Log(a);
}
IEnumerator ReturnValue(System.Action<
int
> callback)
{
yield
return
null;
callback(10);
}
}
*네트워크에 위의 개념을 사용
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class ConnectServer : MonoBehaviour {
string url;
private MusicInfo musicInfo;
void Start() {
quiz_1(0,0);
}
void quiz_1(int genre, int order) {
WWWForm form = new WWWForm();
form.AddField("genre", "0");
form.AddField("order", "0");
//코루틴으로 서버에 접속하고 완료 시, 콜백으로 받아온다
StartCoroutine(postToServer(form, "/quiz_1", (www) => {
musicInfo = JsonUtility.FromJson<MusicInfo>(www.downloadHandler.text);
Debug.Log("콜백: " + musicInfo.title);
}
));
}
//서버로 데이터를 post하는 코루틴
IEnumerator postToServer(WWWForm form, string path, Action<UnityWebRequest> callback) {
UnityWebRequest www = UnityWebRequest.Post(GlobalScript.serverPath + path, form);
yield return www.SendWebRequest();
if(www.isNetworkError || www.isHttpError) {
Debug.Log("[Error]:" + www.error);
}else {
Debug.Log("Form upload complete!");
}
callback(www);
}
}
'Unity' 카테고리의 다른 글
음악 중간부터 재생 (0) | 2019.04.28 |
---|---|
UI Image의 크기조정 (0) | 2018.10.29 |
서버로 Post 보내기 (0) | 2018.10.27 |
텍스트 타이핑 효과 (0) | 2018.10.21 |
자식객체 검색 (0) | 2018.10.16 |