TIL 쓰기전 항상 명심 할 것
작성 타이밍: 공부가 다 끝나고 쓰려고 하면 지쳐서 안쓴다. 모르는게 있을 때 즉시 적기
작성 강도: 메모가 절대로 '공부'나 '또 하나의 짐'처럼 무거워지면 안됨.
[개념] NetLoadOnClient 속성
- 한 줄 요약: 레벨에 배치된 액터를 클라이언트에서도 로드할지 결정하는 네트워크 속성
- 언제 써?:레벨에 정적으로 배치되어 동기화 해줄 필요 없는 액터(맵에 배치된 문, 상자, 장식물, 트리거)
- 코드: 에디터에서 엑터 블루프린트로 설정하는게 편함
[개념] Replication Notify
- 한 줄 요약: Replicated 변수 값이 클라이언트에서 변경되었을 때 자동으로 호출되는 알림 함수
- 언제 써?:서버에서 바뀐 값이 클라이언트에 전달된 뒤, 클라이언트 쪽에서 추가 처리가 필요할 때( 값이 바뀐 순간에 반응해야 할 때)
- 체력이 바뀌면 HP UI 갱신
- 코드:
//헤더파일
UPROPERTY(ReplicatedUsing = OnRep_IsOpen) //변경할 속성의 UPROPERTY() 매크로에는 ReplicatedUsing 키워드
bool bIsOpen;
UFUNCTION()
void OnRep_IsOpen(); //콜백함수에는 UFUNCTION() 매크로와 OnRep_ 접두사가 붙음
//cpp파일
void AMyDoorActor::OnRep_IsOpen()
{
//문 열림 애니메이션 재생, UI 갱신, 사운드 재생
}
void AMyDoorActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyDoorActor, bIsOpen);
}
[개념] NetUpdateFrequency-최적화 기법
- 한 줄 요약: 액터의 Replication 정보를 1초에 최대 몇 번까지 클라이언트에 보낼지 정하는 값(단, 최대값이지 그 값을 계속 유지한다는 보장은 없음)
- 언제 써?:멀티플레이에서 액터의 상태를 얼마나 자주 동기화할지 조절할 때
- 코드:
AMyCharacter::AMyCharacter() { bReplicates = true; // 1초에 최대 60번 네트워크 업데이트 시도 NetUpdateFrequency = 60.0f; } SetNetUpdateFrequency() //함수로도 변경가능
[개념] UPROPERTY(Meta=(AllowPrivateAccess))
- 한 줄 요약: C++ private인데 블루프린트에 보이게 예외처리 해주는 메타 키워드
- 언제 써?:디자이너들이 블루프린트에서 편집가능하게 할 변수들
- 코드:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Meta=(AllowPrivateAccess))
TObjectPtr<USceneComponent> SceneRoot;
[개념] TSubclassOf<>
- 한 줄 요약: 맵에 배치된 액터가 아니라, 스폰할 '블루프린트 원본 에셋' 지정용 주머니
- 언제 써?:디자이너들이 블루프린트에서 편집가능하게 할 변수들
- 코드:
TSubclassOf<AActor> LandMineClass;
'TIL(Today I Learned)' 카테고리의 다른 글
| 2026/06/25 (0) | 2026.06.25 |
|---|---|
| 2026/06/24 (0) | 2026.06.24 |
| 2026/06/18 (0) | 2026.06.18 |
| 2026/06/16 (0) | 2026.06.16 |
| 2026/06/15 (0) | 2026.06.15 |