1.코드카타
2.영타 연습
3.팀플 구현
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
코드카타
문제1:런타임 중 클래스 정보를 얻을 때 사용하는 함수는 무엇인가?
답:GetClass()
런타임 중 클래스 정보를 얻는다는 말의 의미는 컴파일 타임에 알 수 없었던 객체의 정보를 게임을 실행하고 있을 때
알 수 있게 된다는 말이다.
총을 쏴서 적을 맞추면 점수를 획득하고 아군을 맞추면 게임 오버가 되는 코드를 구현했다고 생각해보면컴파일 타임에서는 총을 쏴서 객체를 맞추는것 까지는 알 수 있지만그 피격당한 객체가 무엇인지는 알 수 없는데게임의 규칙(적을 맞추면 점수 획득, 아군을 맞추면 게임오버)을 적용시키기 위해서는 피격당한 객체가 무엇인지적인지 아군인지 알아야 하기 때문에 GetClass()를 사용해서 피격당한 객체의 클래스 정보를 불러와 정체를 알아 내어 게임의 규칙을 적용시키는 것이다.
// 1. 총을 쏴서 무언가(HittedActor)를 맞춤
AActor* HittedActor = Hit.GetActor();
// 2. 그 객체의 클래스 정보가 정확히 '적'의 설계도와 일치하는지 확인
if (HittedActor->GetClass() == AEnemy::StaticClass())
{
// 점수 추가 로직
}
// 3. 그 객체의 클래스 정보가 정확히 '아군'의 설계도와 일치하는지 확인
if (HittedActor->GetClass() == AFriendly::StaticClass())
{
// 게임 오버로직
}
// +추가+ GetClass() 사용하지 않고 적군 계열인지 확인
if (HittedActor -> IsA(AEnemy::StaticClass()))
{
// 점수 추가 로직
}
문제2:컴파일 타임에 클래스 정보를 얻을 때 사용하는 함수는 무엇인가?
답:StaticClass()
컴파일 타임에 클래스 정보를 불러온다는 말의 의미는 어떤 객체의 클래스 정보를 알고 싶다는 말이다.
그 때 사용하는게 StaticClass()함수 이고 보통 방어 코드 작성 할 때 사용하는것 같다.
if(어떤객체A == AMyCharacter::StaticClass())
문제3:IsA() 함수의 역할은 무엇인가?
답:특정 클래스인지 검사한다
클래스 정보 확인 및 상속관계 확인도 가능하다.
StaticClass()와 비슷하게 생각될 수 있는데 Is A()함수가 하는 역할이 좀 더 많다.StaticClass()는 딱 그 클래스인지 확인해서 맞으면 true
Is A()함수는 그 클래스를 상속받은 자식 클래스들도 true로 정해준다.StaticClass() : 이 개가 푸들인가요?Is A() : 이 것은 개인가요?
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
영타 연습
1분 따라치기 10회
산성비 1회
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
팀플 구현
아이템 랜덤 위치 스폰볼륨 만들기
1.박스 컴포넌트로 스폰 영역 설정 가능
2.Nav 메시 위에서만 스폰되게 구현
3.처음 시작하면 맵에 3개 스폰하고 / 30초에 한번씩 생성 (SpawnTime으로 에디터에서 조절가능)
4.ItemBox 클래스를 선택해서 스폰함
아이템 획득시 기능 구현
1.아이템이 주는 수치를 데이터 테이블에 추가
(체력회복, 경험치양)
2.아이템 획득시 캐릭터에게 값 전달해주는 연결 고리까진 만듦
팀원 도움 요청하기:캐릭터파일에서 함수 생성하고 로직 구현
상자 타격 이펙트, 사운드, 타격감 구현
이펙트: 일단 안 넣음 넣을만한게 없음 나중에 에셋 찾아서 끼워주기만 하면됨
사운드: 파일에 있는거 아무거나 끼워넣음
소리 조절하는방법: 사운드 파일을 우클릭해 [Create Sound Cue]를 만들어서 볼륨과 피치를 조절하면 됨
만든 Sound Cue를 사운드 칸에 끼면 됨
타격감: SetActorScale3D() 함수와 타이머를 조합해서 타격당하면 잠깐 액터 크기를 변화 시키고 다시 돌려놓는 식으로 구현
음 근데 별로 맛이 없음 개선이 필요해 보임
아이템 획득시 사운드 추가
Fab에서 무료 사운드 에셋 다운받아서 껴둠
포션 마시는거 / 화약 획득 사운드
좀비 최적화 문제에 관한 튜터님 피드백
1.일단 언리얼에서 몹을 그정도 수로 뽑아내는건 힘들다.
2.해결방법 2가지
- 물량을 유지하는게 중요하면 캐릭터 클래스를 상속받지 말고 액터 클래스를 상속받아서비용을 낮추기 이것도 될지 안될진 모름
- 기존 좀비를 유지하되 맵에 존재하는 전체 마리수를 줄이고 계속 그 수를 유지하게 만들기 전체 마리수를 30마리로 제한하고 좀비가 죽으면 바로바로 리스폰 되게 만들어서 계속 30마리를 유지어차피 뱀서라이크의 재미는 많은 수를 쓸어버리는게 중요한게 아니라 끊임없이 나오는 몹을 잘 잡는게 중요
2번째 해결방안 선택해서 해결함
3.사운드나 이펙트 같은 에셋 문제
- 일단 조립할 구멍만 만들어두고 아무거나 끼워두기
- 나중에 천천히 찾기
- 사운드는 AI로 뽑아도 잘 뽑아줌
내일 할 것
좀비 광폭화 이펙트추가
좀비 총에 맞을때 타격감 형성 및 타격음 추가
좀비 공격 할 때 사운드 추가
이펙트랑 사운드가 제일 문제 톤 맞추기가 너무 어렵다.
'TDL(To_Day_List)' 카테고리의 다른 글
| 2026/06/01 (0) | 2026.06.01 |
|---|---|
| 2026/05/19 (0) | 2026.05.19 |
| 2026/05/15 (0) | 2026.05.15 |
| 2026/05/13 (0) | 2026.05.13 |
| 2026/5/12 (0) | 2026.05.12 |