강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của cssrex20027847
cssrex20027847

câu hỏi đã được viết

Thực chiến! Phát triển Unreal Soulslike: A to Z

Hệ thống nhập liệu và di chuyển nhân vật

C++ 생성자 값 관련 질문입니다.

Viết

·

49

·

Đã chỉnh sửa

0

 

2장 강의에서 생성자에서 이것저것 값을 변경했었는데 (bUseController 등) 이게 적용이 안 됩니다.

 

우선순위가
C++ 생성자 값 < 블루프린트 디테일 패널 설정값

인 건지 블루프린트 디테일 패널에서 직접 체크 표시가 되어 있는 기본값이 유지가 됩니다.

 

막상 카메라 위치 조절 같은 건 적용이 되는데 뭐가 문제인지 잘 모르겠습니다.

 

첨부한 사진입니다.

LOG를 띄워서 확인을 해봤는데, 생성자에서는 분명 false로 들어간 값이, BeginPlay가 실행되니까 블루프린트 디테일 기본 값인 true로 자동으로 바뀝니다.

11.png.webp

 

22.png.webp

 

c++unreal-engine언리얼-c++

Câu trả lời 1

0

Spector님의 프로필 이미지
Spector
Người chia sẻ kiến thức

안녕하세요.

질문 하신 생성자에서 프로퍼티값을 변경했는데 블루프린트에 설정된 값으로 적용되는 문제는 버그나 오류가 아닙니다. 이것은 언리얼 엔진의 의도된 설계입니다.

언리얼 엔진은 객체를 생성할 때 대략적으로 다음과 같은 순서를 거칩니다

C++ 생성자 호출: 엔진이 실행될 때 해당 클래스의 CDO를 생성하며 생성자 코드를 실행합니다.

블루프린트 데이터 로드: C++ 클래스를 상속받은 블루프린트 에셋이 로드됩니다. 이때, 에디터에서 사용자가 수정한 값들이 C++에서 설정한 기본값 위에 덮어씌워집니다.

인스턴스 생성: 게임 월드에 캐릭터를 배치하면, 블루프린트에 저장된 최종 값을 가지고 인스턴스가 생성됩니다.

즉, 간단하게 설명하면 생성자에서 설정한 프로퍼티값은 기본값 입니다.

실제 값은 블루프린트에서 설정한 값이라고 생각하시면 됩니다.

 

참고로 블루프린트에서 해당 프로퍼티 값 옆에 보시면 C++ 클래스에서 설정한 기본값으로 리셋하는 버튼이 있습니다.

이 버튼이 있는 경우는 C++ 클래스의 기본값과 블루프린트의 값이 다르다는 뜻입니다.

 

그럼 좋은 하루 되세요^^

 

 

 

Hình ảnh hồ sơ của cssrex20027847
cssrex20027847

câu hỏi đã được viết

Đặt câu hỏi