입력관련 질문입니다.
안녕하세요. 강의 잘 듣고 있습니다.
궁금한것은 입력이 왔을때 inputmanager 에서 바로 invoke를 하면 subscribe하고 있는 객체들의 함수들이 바로 호출 될꺼같은데,
그렇게 되면 해당 객체들의 update전이나 후에 불릴텐데 괜찮을까요? transform등을 변경하게 되는거 같은데요.
invoke되었을때 각 객체의 큐에 입력을 넣고 update 에서 큐에 있는지 판단해서 처리하는건 좀 이상할까요?
답변 부탁드립니다. 감사합니다.
답변 2
0
안녕하세요,
어차피 InputManager도 동일한 프레임으로 Update하고 있으니,
굳이 객체들의 Update에 맞춰서 해당 객체를 움직여야 할 필요는 없습니다.
물론 객체의 Update에서도 동일하게 Transform을 변경하고 있다면
동시에 2 군데에서 하니 문제가 될 수는 있겠지만,
그게 아니라 1 군데에서만 실제 좌표 계산을 하면 특별히 문제가 된다고 보긴 어렵습니다.
예를 들면 역할을 분담해서 InputManager에서는 마우스 입력을 받아 목적지를 지정하는 용도로 사용하고,
실제 좌표 계산은 다음 틱에 호출되는 Update에서 하는 방식으로 분담할 수 있겠죠.
물론 말씀주신대로 1틱 전/후의 차이가 날 수는 있지만,
스타크래프트와 같이 틱 단위로 정확하게 위치를 맞출 필요가 없는 게임이라면 크게 신경쓸 필요가 없어 보입니다.
말씀주신 큐를 이용한 방법은 싱글 게임이라면
역시나 굳이 그 정도까지 정확하게 맞출 필요는 없어 보이지만,
온라인 게임이라면 충분히 고려할 수 있는 방법이 됩니다.
Part3은 싱글 게임이니 inputManager에서 객체들을 조종하고 있는데,
사실 나중에 서버가 붙으면 패킷을 받은 network 쪽에서 비슷하게 객체들을 조종하게 됩니다.
그런데 네트워크 송수신은 별도 쓰레드에서 비동기로 처리하는 경우가 많은데
유니티 정책상 백그라운드 쓰레드에서 게임 쓰레드에 접근해 조작할 수 없습니다.
그러니 중간에 있는 어떤 경로(ex. 큐)를 통해서 인풋을 전달해주고,
나중에 큐에서 내용물을 꺼내서 움직이는 방법은 괜찮은 방법이라 할 수 있겠습니다.
UI 기능 관련 질문이 있습니다!
0
37
2
픽셀 좌표 스크린 좌표
0
33
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
75
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
84
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
84
1
Input 적용과 관련하여 질문 있습니다.
0
75
1
디버그 불가.. Unity에 연결 불가
0
83
1
달리기 애니메이션 에러
0
89
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
66
1
GetKey 오류
0
110
2
에셋을 어디에 올려두신지 알 수 있나요?
0
107
1
재귀호출? 오류나는데 왜 이래요 ?
0
169
6
Animation blending 파라미터 계산
0
69
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
97
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
88
2
질문있습니다
0
143
2
아 이거 소스코드 같은거 없나요?
0
142
3
질문 드립니다. string.IsNullOrEmpty(name)
0
87
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
136
2
유니티6 NavMesh 안되는분들
1
176
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
529
1
GetComponent<Poolable> 질문드립니다.
0
102
2
UI 불러오지 못함
0
119
2
UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.
0
155
2





