인프런 커뮤니티 질문&답변
Action 관련해서 질문드립니다.
작성
·
264
0
InputManager에서
public Action KeyAction = null;
public void OnUpdate()
{
if (Input.anyKey == false)
return;
if (KeyAction != null)
KeyAction.Invoke();
}
저 빨간 부분인 KeyAction.Invoke()에 대해 궁금한데요. 찾아보니까 Action을 사용하려면 Invoke가 붙어야 한다고 구글링을 통해 알았습니다만... 그런데 Invoke 없이 일반적으로 KeyAction(); 만 사용해도 문제없이 실행 되더라고요.
여기서 Invoke가 있고 없고의 차이가 무엇인지 알수 있을까요?
퀴즈
게임 오브젝트의 이동 계산 시 Time.deltaTime 값을 곱해주는 주된 이유는 무엇일까요?
캐릭터의 최대 이동 속도를 제한하기 위해
모든 컴퓨터에서 초당 이동 거리를 일정하게 유지하기 위해
물리 엔진 계산의 정확도를 높이기 위해
오브젝트의 회전 상태에 따라 이동 방향을 결정하기 위해
답변 1
1
Rookiss
지식공유자
()을 해도 내부적으로 Invoke()가 되어 사실상 100% 동일합니다.
개인적으로 Invoke()를 호출하면 일반 함수가 아닌 delegate라는 가독성도 좋아지고
또 nullable을 활용해서 KeyAction?.Invoke(); 도 고려할 수 있기 때문에 후자를 더 좋아합니다.





