백지부터 시작하는 이세계 코딩 생활
유니티 - 뒤끝 : 델리게이트 사용, 콜백처리 본문
뒤끝 - CRUD 기능
* Delegate : BroadCast 처럼 사용함. (subscriber들에게 publish 된 내용들을 전달(전파) 할 때). 이를 대행자, 대리자 라고 칭함.
* 이벤트 등록 및 삭제하려는 함수를 인벤트 핸들러 라고도 함.
- 이벤트 등록(subscriber)은 += 으로 함.
- 이벤트 삭제(subscriber)는 -= 으로 함.
- 네임스페이스는 System.
Action - return 값을 가지지 않는 형태의 델리게이트.
Func - return 값을 가지는 형태의 델리게이트. 복수개의 파라미터를 실을 수 있으며 마지막에 위치한 파라미터는 Return 값이 됨.
Event - 지역변수 처럼 사용되는 델리게이트. 선언된 클래스에서만 사용이 가능함.
#이벤트발생
전처리 - 통신 : 비동기 상태로 처리 - 후처리
전처리는 prameter 정리
통신할 때 parameter 값을 전송
! 통신완료 후 !
UI에 통신처리 된 뒤의 내용을 표시
뒤끝과 연결되는 CRUD 함수를 생성
생성된 함수는 콜백 처리를 한다
생성된 함수는 스크립트 생성시 Action 이벤트에 등록 시킨다
--- 콜백처리 vvv
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
BackEnd.Param param = new BackEnd.Param
{
{ "KEY0", "VALUE0" },
{ "KEY1", "VALUE1" },
{ "KEY2", "VALUE2" }
};
BackendManager.Instance.Insert("USER", param, TestAction);
}
}
private void TestAction(LitJson.JsonData _json)
{
print("CALLBACK : " + _json.ToString());
}
///
--- Action 등록 및 사용 vvv
using System;
public class Worker : MonoBehaviour
{
Action work;
void MoveBricks()
{
Debug.Log("벽돌을 옮겼다.");
}
void DigIn()
{
Debug.Log("땅을 팠다.");
}
void Start()
{
work += MoveBricks;
work += DigIn;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
work();
}
}
}
--- Delegate 사용 vvv
delegate void Work();
Wrok work;
void MoveBricks()
{
Debug.Log("벽돌을 옮겼다.");
}
void DigIn()
{
Debug.Log("땅을 팠다.");
}
void Start()
{
work += MoveBricks;
work += DigIn;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
work();
}
}
Ref.
-
https://ansohxxn.github.io/unity%20lesson%201/chapter8-4/
https://m.blog.naver.com/enter_maintanance/221639746861
https://luv-n-interest.tistory.com/813
-
'Unity' 카테고리의 다른 글
Unity Dictionary 를 활용한 중복처리 예시 (0) | 2022.07.13 |
---|
Comments