Network UPROPERY(Replicated)를 쓰려면 다음 함수 써야 함 void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const; // 구현부 void APSPlayerInfo::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(class이름, var이름); } DOREPLIFETIME는 #include "Net/UnrealNetwork.h" 해야 함 GetLifetimeReplicatedProps이 선언되어 있는 class에서는 UFUNCTION()달면 안 됨 ..
Game
Multplayer지원 게임 개발을 위한 개념 정리 & 계획 Multiplayer Multiplayer를 지원하기 위해서는 서버와 클라이언트가 필요하다. 이때, 서버의 종류가 두 가지가 있다. 데디케이티드 서버(Dedicated Server): 단위 작업을 전담하는 서버(e.g. 게임 한 판, 특정 기능) 리슨 서버(Listen Server): 클라이언트/서버 구조의 서버, 하나의 PC가 서버 역할을 담당(e.g. 매칭 게임) 즉, 데디케이티드 서버는 서버 기능만을 담당하는 PC가 있는 것이고, 리슨 서버는 하나의 Player(방장)가 서버 역할을 담당하여 처리하는 구조이다. UE5로 리슨 서버 구조의 Multiplyaer 보드게임을 만들 예정이다. 한 명의 Player가 Hosting을 하여 방을 만들..
Vector 내적 외적 정리 내적 A*B = |A| * |B| * cosθ 두 벡터사이의 각은 코사인의 역함수로 구할 수 있다. 게임에서 내적이 사용되는 사례 물체가 앞에 있는지 혹은 뒤에 있는지 판별 플레이어의 시선(forward)을 기준으로 좌, 우의 내적값은 음수값을 갖는다 → 내적이 양수라면 앞에, 음수라면 뒤에 있다. 시야각 내에 물체 판별 시야각이 X라 했을 때, 플레이어의 시선(forward)과 물체의 위치 벡터를 내적하여 얻은 각도가 X/2보다 크다면 시야각에 벗어나는 물체이다. 점 A와 평면 S와의 최단 거리 계산(이때, d가 0이라면 점 A는 평면 위의 점이다.) 선과 평면사이의 접점을 구할 때 외적 두 벡터와 모두 직교하는 새로운 벡터를 구한다. 내적과는 달리 교환법칙이 성립되지 않는..