[Unreal]#7_Spawn Gun Actor in Runtime

2022. 8. 12. 23:48· 게임개발/Unreal C++
목차
  1. [Unreal]#7_Spawn Gun Actor in Runtime

[Unreal]#7_Spawn Gun Actor in Runtime

Unreal 개발 중 "Gun Actor"에 대해 알아보겠습니다.

"Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다.

 

 


 

SpawnActor()

 

1. Character 클래스 내부에 "Gun" Actor를 멤버로 선언

// character.h 파일 내부

private:
	// 1. 실제 World에 Render할 Gun 객체는 원본 클래스가 아니라, 파생 클래스들입니다.
  	// eg) Gun Class 의 파생 클래스 : Rifle, Sniper, Launcher...etc
	UPROPERTY(EditDefaultsOnly)
	TSubclassOf<class AGun> GunClass;

	UPROPERTY()
	AGun* Gun;
    
// character.cpp의 BeginPlay() 멤버 메서드 내부
void AShooterCharacter::BeginPlay()
{
	//...
    
	Gun = GetWorld()->SpawnActor<AGun>(GunClass);
    
	//...
}
1. TSubclassOf<UClass> CLASS_NAME : UClass 유형의 안정성을 보장해줍니다.
2. SpawnActor<ParentClassType> (Specified Class Type) : World에 새로운 Instance를 생성합니다.

 

2. TSubclassOf<> 템플릿  클래스

"TSubclassOf<>"는 UPROPERTY 유형의 UClass 생성 후 템플릿 파라미터(<>에 들어갈 Class) 유형의 파생 클래스만 할당하도록 제한합니다.

 

말 그대로, UPROPERTY()를 통해 Editor에서 직접 특정 클래스를 할당하도록 허용할 때,

우리가 "TSubclassOf <>"로 미리 지정한 "Gun" 클래스의 파생 클래스들만 할당하도록 제한하는 거죠!

 

* 주의 : :"TSubclassOf <>"를 통해 C++과 Bluprints를 연결하기보단, UPROPERTY의 안정성 보장이 목적

 

3. SpawnActor()의 템플릿 버전

Gun = GetWorld()->SpawnActor<AGun>(GunClass);

말 그대로, "SpawnActor"는 런타임에 새로운 Actor 인스턴스를 World에 생성합니다.

 

우리가 사용한 버전은 템플릿 버전으로 특정 클래스 타입을 명시적으로 작성하고, 해당 타입의 "부모 클래스"를 반환하도록 되어 있습니다.

 

4. Character Blueprint에서 "Gun" 클래스 지정

1. Editor 내부 Character Blueprint에 들어가서 "클래스 디폴트"를 누릅니다.

2. UPROPERTY를 통해 노출한 프로퍼티 설정에서 특정 GunClass의 파생 클래스를 지정합니다. 

 

 

 

'게임개발 > Unreal C++' 카테고리의 다른 글

[Unreal]#9-1_Shooting 설계 및 구현  (0) 2022.08.17
[Unreal]#8_Attach Gun Actor to Shooter Character  (0) 2022.08.16
[Unreal]#6_Gun Actor Setting  (0) 2022.08.11
[Unreal]#5_Character의 이동 속도와 각도 구하기, Animation Blueprint  (0) 2022.08.10
[Unreal]#4_Animation Blueprint, Gameplay와 Animation 연결하기  (0) 2022.08.08
  1. [Unreal]#7_Spawn Gun Actor in Runtime
'게임개발/Unreal C++' 카테고리의 다른 글
  • [Unreal]#9-1_Shooting 설계 및 구현
  • [Unreal]#8_Attach Gun Actor to Shooter Character
  • [Unreal]#6_Gun Actor Setting
  • [Unreal]#5_Character의 이동 속도와 각도 구하기, Animation Blueprint
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • unreal
  • C++
  • 그래프
  • 트리
  • BOJ
  • 디자인 패턴
  • 최단 경로
  • Effective C++
  • set
  • dfs
  • 기술 질문
  • stl
  • 정렬
  • 우선순위 큐
  • DP
  • 개발
  • BFS
  • Unreal Blueprint
  • 알고리즘
  • programmers

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal]#7_Spawn Gun Actor in Runtime
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.