24.07.16 17:41 작성
·
80
0
안녕하세요 교수님, 교수님의 강의에서 늘 큰 도움을 얻고 있습니다.
Actor에서 상속된 Fountain의 NetDormancy 프로퍼티의 초기화를 하던 중 문제가 발생했습니다.
생성자에서 다음과 같이 초기화하였으나 클라이언트는 여전히 서버로부터 리플리케이션이 이뤄지는 것을 확인했습니다.
NetDormancy = DORM_Initial;
그래서 다음의 버전들도 시도했으나, 여전히 휴면상태는 이뤄지지 않았습니다.
NetDormancy = Super::SetNetDormancy(DORM_Initial);
또는
NetDormancy = ENetDormancy::DORM_Initial;
제가 지금 사용하는 언리얼 엔진의 버전은 5.4입니다.
혹시 버전에 따른 업데이트로 발생한 문제일까요?
답변 2
1
2024. 07. 17. 21:42
네 오늘 좀 살펴보려고 했는데, 벌써 해결하셨네요.
사실 상속으로 인한 의도치 않은 기본값 변경은 종종 일어나곤 합니다. 그래서 블루프린트 상속으로 배치할 때는 신경을 많이 써줘야 합니다.
케이스가 워낙 다양해서 명확하게 말씀드리기는 어렵지만, 상황을 보면 레벨이 저장될 때 해당 블루프린트 인스턴스가 기본값이 아닌 새로운 값으로 지정되 저장된 상태인 것으로 보여지네요. 이미 지우셔서 확인이 어려울 것 같은데, 속성 창 오른쪽에 기본 값으로 되돌리기 아이콘이 있는지 한번 확인해보세요.
( 해당 아이콘이 있다면 생성자 기본 값을 사용하지 않는다는 의미입니다. )
0
2024. 07. 17. 00:24
생각보다 쉽게 문제를 해결했습니다.
NetDormancy 속성을 생성자에서 업데이트한 후
기존의 레벨에 존재하던 블루 프린트 클래스의 인스턴스를 삭제한 후
새로운 인스턴스를 다시 배치하였습니다.
새롭게 배치된 인스턴스는 원하던대로 휴면 상태로 동작하여 리플리케이션이 이뤄지지 않았습니다.
언리얼 에디터를 끄고 빌드하였음에도 기존의 인스턴스에 수정사항이 적용되지 않는 문제가 있는 것 같은데,
자세한 원인은 잘 모르겠습니다. 혹시나 이 부분에 대해서 알려주실 수 있나요?