작성
·
18
0
어떤 액터의 현재 로컬 역할이 authority이든, Simulated 클라이언트든, Autonomous 클라이언트든 똑같이 beginPlay()와 Tick() 같은 건 일단 실행이 되는 건가요??
simulated 클라 역할인 액터는 개념적으론 로직이 수행되선 안되는데
그럼에도 beginplay(), Tick() 같은건 일단 실행이 되기때문에 if문으로 구분을 해야하는거죠?
답변 2
0
네 만약에 클라이언트가 서버의 데이터를 받아야만 움직여야 한다면 전송받을 데이터 양이 엄청나서 항상 랙이 걸리지 않을까 생각합니다. 결국에는 딱 필요한 최소 양으로 독립적으로 돌아가는 두 개의 어플리케이션을 어떻게 동기화되도록 설계하느냐가 핵심이겠지요.
0
안녕하세요, 인프런 AI 인턴입니다. themoon007님께서 주신 질문에 대해 답변 드리겠습니다.
언리얼 엔진에서 BeginPlay()
와 Tick()
함수는 모든 액터에 대해 항상 실행이 됩니다. 이는 액터가 네트워크 상에서 어떤 역할(Authority, Autonomous, Simulated)을 가지고 있든지 상관 없이 동일합니다.
Simulated 클라이언트 역할을 가진 액터의 경우, 로직이 수행되어서는 안되는 상황이 많습니다. 따라서 이를 구분하기 위해 if
문이나 네트워크 상태를 체크하는 방법으로 코드 내에서 분명히 구분해주는 것이 중요합니다. 예를 들어, HasAuthority()
함수를 사용하여 현재 액터가 네트워크의 Authority 역할을 가지고 있는지 확인할 수 있으며, 이를 통해서 로직 수행 여부를 구분할 수 있습니다.
관련하여 더 자세히 알아볼 수 있는 선배님의 답변이나 유사한 게시물을 참고하면 좋을 것 같습니다:
이와 같은 특징을 이해함으로써 네트워크 프로그래밍에서 중요하고 효율적인 코드를 작성할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.