뒤끝에 비동기 함수를 사용하려고 하는데 찾아보던 와중에 찾을 수가 없어서 문의를 드립니다
비동기 함수의 콜백 함수는 두 가지 실행 방법이 존재합니다
1. 비동기 IO 스레드 내에서 실행되는 방법[]
이때 유니티의 정책에 따라 별도의 스레드에서는 유니티 MonoBehaviour 객체에 접근할 수 없습니다.
즉 콜백 함수 내에서는 유니티 객체, UI 객체 등에 접근할 수 없기 때문에 비동기 함수의 요청 결과에 따른 처리를 위해서는 별도의 Dispatcher의 사용이 필요할 수 있습니다.
2. 메인 스레드에서 실행되는 방법[]
콜백 함수 풀링 기능을 사용하면 콜백 함수 내에서도 유니티 MonoBehavior 객체에 접근할 수 있습니다.
즉 콜백 함수 내에서 유니티 객체, UI 객체 등에 접근할 수 있습니다.
콜백 함수 풀링 기능에 대해서는 해당 문서를 참고해 주세요
여기서 해당문서를 클릭하니 페이지를 찾을 수가 없다고 나옵니다
그리고 비동기 함수를 사용하려고 코드를 작성하니 AsyncPoll이 Backend에 정의가 포함되어 있지 않다고 나옵니다 혹시 어떻게 해결해야 하는지 알려주실 수 있을까요? 혹시 몰라 코드도 같이 올립니다
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
31
32
|
using UnityEngine;
using BackEnd;
public class BackendManager : MonoBehaviour
{
private void Awake()
{
DontDestroyOnLoad(gameObject);
BackendSetup();
}
private void Update()
{
if(Backend.IsInitialized)
{
Backend.AsyncPoll;
}
}
private void BackendSetup()
{
var bro = Backend.Initialize(true); // 뒤끝 초기화
// 뒤끝 초기화에 대한 응답값
if (bro.IsSuccess())
{
Debug.Log("초기화 성공 : " + bro); // 성공일 경우 statusCode 204 Success
}
else
{
Debug.LogError("초기화 실패 : " + bro); // 실패일 경우 statusCode 400대 에러 발생
}
}
}
|
cs |
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
31
32
33
34
35
|
using UnityEngine;
using BackEnd;
public class BackendManager : MonoBehaviour
{
private void Awake()
{
DontDestroyOnLoad(gameObject);
BackendSetup();
}
private void Update()
{
if(Backend.IsInitialized)
{
Backend.AsyncPoll;
}
}
private void backendSetup(){
bool useAsyncPoll = true;
// 국가 정보 불러오기를 비동기로 별도 호출할 것인지 여부(false일 경우, 초기화 응답 이후 국가 정보 불러오기)
bool autoLocationToAsync = true;
Backend.InitializeAsync(useAsyncPoll, autoLocationToAsync, callback =>
{
// 뒤끝 초기화에 대한 응답값
if (callback.IsSuccess())
{
Debug.Log("초기화 성공 : " + callback); // 성공일 경우 statusCode 204 Success
}
else
{
Debug.LogError("초기화 실패 : " + callback); // 실패일 경우 statusCode 400대 에러 발생
}
});
}
|
cs |