inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[입문자를 위한 UE5] Part4. 언리얼 엔진 C++

AssetManager

AssetManager 챕터 강의 중 "FSoftObjectPath GetAssetPathByName(const FName& AssetName)" 함수 Return Type 관련 질문이 있습니다.

290

JDY

작성한 질문수 3

0

AssetManager 챕터 강의 중, 다음의 두 함수를 추가하게 되는데,

FSoftObjectPath GetAssetPathByName(const FName& AssetName);

const FAssetSet& GetAssetSetByLabel(const FName& Label);

첫번째 함수인 "FSoftObjectPath GetAssetPathByName(const FName& AssetName);" 경우에는

왜 "const FAssetSet& GetAssetSetByLabel(const FName& Label);" 처럼 "FSoftObjectPath&" Return 타입이 아닌, "FSoftObjectPath" Return 타입으로 작업하셨는지 문의 드려봅니다.

unreal-engine 언리얼-c++

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
JDY님의 질문에 답변드리자면, 프로그래밍에서 함수의 반환 타입을 결정할 때는 여러 요소를 고려해야 하며, 그 중 하나가 반환되는 객체의 수명과 관리 방법입니다.

“FSoftObjectPath GetAssetPathByName(const FName& AssetName);” 함수가 “FSoftObjectPath” 타입을 그대로 반환하는 이유는 FSoftObjectPath 객체가 값을 복사하는 데 비용이 크지 않거나, 반환된 객체가 호출 지점에서 독립적으로 사용되어야 하는 경우일 수 있습니다. 반면에 “const FAssetSet& GetAssetSetByLabel(const FName& Label);“과 같이 참조자(&)를 반환 타입으로 사용하는 경우는 해당 객체가 무거운 객체이거나 함수 외부에서 수정하지 않고 사용하기 위함일 수 있는데, 이는 해당 객체의 메모리를 효율적으로 관리하고자 하는 의도일 수 있습니다.

실질적으로 “FSoftObjectPath&“와 “FSoftObjectPath” 반환 타입 사이에서 선택하는 것은 개발자가 함수를 설계하는 과정에서, 함수가 반환하는 객체의 수명, 성능 영향, 그리고 사용하는 컨텍스트를 고려한 결정입니다. 따라서, FSoftObjectPath 객체를 값으로 반환하는 것이 해당 상황에서 더 적합하다고 판단되었을 것입니다.

제공한 정보에서는 특정한 프로그래밍 언어 구조나 방식에 대한 직접적인 설명은 없지만, 일반적인 프로그래밍 원리와 객체 지향 프로그래밍에서의 함수 설계 원칙을 통해 위와 같이 설명드릴 수 있습니다.

1장. 파일 추가 및 삭제 에서 생성할때 에러가 납니다.

0

70

0

3d game 리소스 추출하는 방법

0

156

1

11강 2분 22초. 12강 6분 18초 영상편집오류

0

71

1

GENERATED_BODY() 빨간 밑줄이 사라지지 않습니다

0

127

2

언리얼 프로젝트를 생성할 수 없었습니다(컴파일 실패)

0

313

2

Unreal VS 빌드오류 해결 도저히 못하겠습니다.

0

715

2

WidgetBlueprint 복사 방법 질문

0

64

2

수강생으로서의 고민

0

102

1

13강. 모듈 내 하위 디렉터리 인식 못하는 문제 해결법

0

65

1

UClass 안에 ClassDefaultObject 관련 질문이 있습니다.

0

87

1

해당 강의 중반부부터 싱크가 안맞는 것 같아요

0

75

1

디아블로 방식의 컨트롤에서 타겟 위치로 이동 문제

0

123

2

디아블로 방식의 컨트롤 맨마지막 옵션관련 질문

0

85

2

32. 디아블로 방식의 컨트롤

0

76

1

점프 강의 도중의 질문입니다.

1

104

2

AssetManager 질문

0

96

1

GetAssetByName<UR1InputData>("InputData")) 질문입니다.

0

127

2

Variable Replication

0

122

1

AI #4 질문

0

117

1

언리얼 시스템의 에러? 에 대해서 질문 드립니다.

0

360

1

전혀 이해가 가질 않네요.

9

408

1

의구심이 듭니다

0

361

1

Animation Event영상에서 Notify 대신 Received_Notify()사용

0

124

0

const FObjectInitializer& ObjectInitializer 와 const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()

0

313

1