분류 전체보기 101

TIL - 71

TMap은 Replication이 되지 않음 해당 값을 TArray이나 int값으로 따로 생성하여 복제한다. // ItemActor.cpp 하단#include "Net/UnrealNetwork.h" // 이 헤더가 반드시 있어야 합니다.void AItemActor::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const{ Super::GetLifetimeReplicatedProps(OutLifetimeProps); // 복제할 변수들을 여기에 등록 (예시: ReplicatedCarriers 배열) DOREPLIFETIME(AItemActor, ReplicatedCarriers); }그 루 Replicate 설정을 함

TIL - 70

캐릭터가 상호작용하여 들 수 있는 아이템 구현캐릭터의 상호작용 컴포넌트가 캐릭터가 아이템의 상호작용 범위에 들어가면 해당 아이템을 상호작용 가능 목록에 추가-> 플레이어가 해당 아이템을 좌클릭하면 해당 아이템 GA_Carry 실행-> 아이템이 캐릭터에 붙음(소켓)1인 아이템이면 플레이어가 들고 움직임 2인 아이템이면 한 쪽만 들고 끌며 움직임이미 누가 들고 있는 2인 아이템은 다른 캐릭터 반대편으로 이동하여 듦이동속도 제한은 GE로 설정내려놓을 때 채널링핵심 아이템 운반 시 Event.GPSActivated 발생 운반 시 서버가 직접 위치 계산 (SetActorLocation)-ReplicateMovement가 결과를 전체 클라이언트에 전파, 클라이언트는 엔진 내장 Smoothing으로 보간물리 이벤트 ..

[내일배움캠프 - 언리얼] TIL - 68

Data driven코드가 아니라 데이터로 컨텐츠를 정의 Const : 테이블에 고정된 값. 모든 서버/클라가 같은 데이터를 공유Runtime : 플레이 중 변하는 값. 서버가 계산하고, 개체마다 다름DataTableSubsystem으로 한 번 로드, 전역 접근// - 슈도 코드 : C++ 서브시스템 생성 제한 -bool ShouldCreateSubsystem(Outer){ World = Cast(Outer); // 게임 월드 또는 PIE(에디터 플레이) 에서만 생성 if (World.Type != Game && World.Type != PIE) return false; // 특정 게임모드에서만 생성 GameModeClass = World.Settings...

[내일배움캠프 - 언리얼] TIL - 67

UI 띄우기PlayerController에 있는 UpdateUI 함수를 GameMode에서 실행하니 작동이 되지 않았다GameMode에서 GameState에 데이터를 업데이트해주고 함수 실행을 GameState로 옮기니 잘 작동하였다 숫자 야구 게임 개발필수 기능1. GameModeBase의 판정 로직 구현2. PlayerState 클래스를 활용한 시도 횟수 관리3. 게임 제어 : 승리, 무승부 그리고 리셋 도전 기능1. 턴 제어 기능2. 턴 내에 숫자 야구(채팅을 입력)하지 않을 시 기회 소진 기능 추가 구현1. 배경 이미지 추가2. 채팅 Debug에서 UI로 변경3. 현재 턴인 플레이어와 플레이어 목록 표시 아쉬운 점, 개선 사항1. 플레이어 턴이 시간이 끝나는 것으로 횟수가 소모 되었을 때 무승부..

[내일배움캠프 - 언리얼] TIL - 65

네트워크 프로퍼티 레플리케이션1. Replication Notify (값 변경 통지)변수 값이 서버에서 클라이언트로 복제될 때, "값이 바뀌었으니 이 함수를 실행해!"라고 예약하는 기능 2. NetUpdateFrequency (업데이트 빈도)서버가 해당 액터의 상태를 클라이언트에 얼마나 자주 보낼지 결정하는 초당 횟수 3. Relevancy (연관성)서버가 "이 클라이언트에게 이 액터 정보가 정말 필요한가?"를 판단하는 기준 4. NetPriority (우선순위)네트워크 데이터가 너무 많아 한 번에 다 보낼 수 없을 때(포화 상태), 어떤 액터 정보를 먼저 보낼지 정하는 순위표 5. NetDormancy (휴면 상태)액터가 "잠든 상태"가 되어 더 이상 네트워크 업데이트를 주고받지 않는 상태

[내일배움캠프 - 언리얼] TIL - 64

EnableGDTGameplay Ability System의 디버거 UI를 보기 위해 EnableGDT를 호출하였더니 에러가 났다check(RepNotifyCondition == Other.RepNotifyCondition); 데이터 변형 과정에서 로컬 객체와 복제된 객체의 상태가 일치하지 않아 발생한 오류이다 MyAttributeSet에서 GetLifetimeReplicatedProps(...)에서 매크로 단순화를 해주니 해결되었다.// 수정 전void UMyAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const{ Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREP..

[내일배움캠프 - 언리얼] TIL - 63

No such file or directory챕터 4를 따라 진행을 하는데 파일을 생성하고나니 빌드가 되지 않았다알고보니 cpp 파일에 있는 헤더의 경로가 잘못되었던 것인데 폴더를 생성하고 파일을 넣었더니 빌드가 경로를 찾지 못한 것이다해결 방법- 경로를 처음부터 자세히 작성해준다.- Build.cs 파일에 경로를 추가해준다.PublicIncludePaths.AddRange(new string[] { "프로젝트 이름" }); 블루프린트와 c++을 같은 이름의 폴더로 정리하기