Unity http 통신
다른 캡스톤 팀원이 웹 서버를 만들어 두어서, 그 서버 메소드를 사용하기 위해 get을 사용하는 과정을 기록했음
Unity Version : 2022.3.16f1 LTS
사용자가 입력한 값 받기
우선 사용자가 회원가입할 때 입력한 ID, Email, PW를 스크립트에서 받아야 함
1
2
3
4
5
6
7
8
9
// RegisterPopup.cs
public void OnClickRegister()
{
id = idField.text;
email = emailField.text;
pw = pwField.text;
Debug.Log("Register Clicked");
Debug.Log("ID : " + id + " Email : " + email + " PW : " + pw);
}
Get으로 ID 있는지 확인
Get을 위한 코루틴 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// RegisterPopup.cs
IEnumerator RequestGet(string url, Action<string> callback)
{
UnityWebRequest request = UnityWebRequest.Get(url);
// response가 올 때까지 턴 넘김
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
Debug.Log(request.error);
}
else
{
// response의 내용을 callback에 넣음
string result = request.downloadHandler.text;
Debug.Log("Request Text : " + result);
callback(result);
}
}
버튼을 클릭했을 때, Get으로 사용 가능한 아이디인지 확인할 수 있도록 함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// RegisterPopup.cs
public void OnClickRegister()
{
msgTxt.gameObject.SetActive(false);
id = idField.text;
email = emailField.text;
pw = pwField.text;
Debug.Log("Register Clicked");
Debug.Log("ID : " + id + " Email : " + email + " PW : " + pw);
// ID 중복 검사를 위한 코루틴 생성 및 실행
StartCoroutine(RequestGet(url + duplicateIDUrl + id, (callback) =>
{
Debug.Log("RequestGet Callback : " + callback);
if (callback == "true")
{
msgTxt.gameObject.SetActive(true);
msgTxt.color = Color.green;
msgTxt.text = "This ID is UNIQUE! GOOD!";
}
else
{
msgTxt.gameObject.SetActive(true);
msgTxt.color = Color.red;
msgTxt.text = "Register Failed. Check your ID";
}
}));
}
결과
이미 있는 아이디 작성했을 때
없는 아이디 작성했을 때
참고자료
[Unity] HTTP REST api 통신 모듈 구현
[Unity] UnityWebRequest 의 Get, Post 사용하기
[Unity3D] 웹 데이터 파일 다운로드,업로드(GET, POST) 및 저장 (UnityWebRequest)
How to get Text from TextMeshPro input field
[Unity] UnityWebRequest로 json 데이터를 Http body에 Post로 전달방법
유니티[Unity3D] TMP_InputFIeld()타입 초기화
This post is licensed under CC BY 4.0 by the author.