• [Unreal 게시판] level의 모든 actor의 정보를 load save하는 방법2014.06.12 PM 11:45

게시물 주소 FONT글자 작게하기 글자 키우기

Question>

blue print로 actor의 정보를 save data로 저장하려고 함.
저장하려는 정보는 level에 배치된 actor들의 transform 같은 정보임.

blue print로 load/save를 구현한다는 전제하에서
어떤 특정 actor 1개가 아니라, level 전체의 actor들의 정보를 load/save하려면 어떻게 해야 하는가?

-------------------------------------------------------------

Answer>

필요한 기술들은 아래와 같습니다.^^


1>blue print에서 특정 변수값을 load/save하는 방법에 대해서는
아래 link를 참고하시기 바랍니다.

https://answers.unrealengine.com/questions/25747/how-can-i-savegame.html
https://docs.unrealengine.com/latest/KOR/Gameplay/SaveGame/Blueprints/index.html


2>actor의 위치와 방향 정보는 actor의 RootComponent에서
SetWorldLocation()와 SetWorldRotation()으로 알아 내시면 됩니다.
둘다 blue print에서 바로 접근 가능한 함수이므로, 쉽게 연결하실 수 있습니다.^^
( 물론, GetComponenTransform() 같은 명령으로 transform 구할 수도 있습니다.
이건 취향의 문제니까, 취향대로 선택하시고요. ^^;;;;;)


3>level 전체의 actor 정보는
level 전체의 actor에 대해서 iterator를 발동시키시면 되고요.
iterator 사용법은 아래 link를 참고해 주세요.^^

https://wiki.unrealengine.com/Iterators:_Object_%26_Actor_Iterators,_Optional_Class_Scope_For_Faster_Search


level 전체의 actor 정보를 저장하시려면,
1>, 2>, 3>을 융합해서 구현하시면 됩니다.^^
참고로 unreal engine 3에서
1>, 2>, 3>을 융합해서 level 전체를 load/save하는 source는 아래와 같습니다.^^

http://udn.epicgames.com/Three/DevelopmentKitGemsSaveGameStatesKR.html

그러나, unreal engine 4에서는
아직 위 link처럼 된 게 없네요.^^;;;;;;

없으면 만드는 수 밖에 없습니다.^^;;;;;;
알려드린 기술들과 link를 참고해서, 직접 만들어 보시기 바랍니다.^^


P.S.
솔직히, 모든 actor의 위치 정보를 load/save하는 건 상당히 비효율적입니다.^^;;;
level에 actor를 배치할 때, 대부분 처리하도록 하시고,
load/save는 꼭 필요한 actor에 한해서 한정하는 게 효율적이라고 봅니다.^^







Tag:
안기훈, Kee Hoon Ahn, 언리얼, Unreal, UDK, iPhone, iPad, app, 앱, iOS
댓글 : 0 개
친구글 비밀글 댓글 쓰기