진짜 ㅈ같은 과정이었다.




리플리케이트 안쓰고, 데이터 매니저를 서버와 클라에서 각각 개별로 보관하면서




이벤트 발생할때만 서버의 데이터를 클라에 동기화 시키는 방법을 찾아야 했는데.




강의에서 들은 내용은 딱히 필요가 없었고




지피티 갈구면서 해결함.




서버에서만 생성할때 필요한것




비긴 플레이


get all actor of class (controller) -> 배열로 저장

Spawn Data Manager


이렇게 만들어야 할때, 분기문을 이렇게 짜야 했음.




begin play




if(has authority == true)


{


if(is local controller == true)


{


//서버


get all actor of class (controller) -> 배열로 저장

Spawn Data Manager


}


}


else


{


if(is local controller == true)


{


//클라


get all actor of class (controller) -> 배열로 저장

Spawn Data Manager


}


}




첫 분기문, has authority == 참 일시 서버, 거짓일시 클라




이후 공통 로컬 컨트롤러 참




딱 이것만 하면 일단 서버 클라 분리가 됨.




RPC 할때는




서버에서 클라로 전파할때


for(controller)


if ( index != 0 )


{


RPC_소유한 클라로 전파


}


이렇게 해주면 됨.


index 가 0이 아닐때만 해야하는건, 0은 서버이기 때문.




진짜 여기서 막히면 걍 때려 칠라 했는데 다행히 해결.




이 방식은 리플리케이트를 쓰지 않는거라, 보통 방식이랑은 안맞을건데




일단 이벤트 전파 방식은 알아냈기에....좀 후련해졌음.