게임 데이터

CJB_ny·2022년 12월 30일
0

득언리얼

목록 보기
5/12
post-thumbnail

어제 해결 못했던 부분 3가지 중에서 2가지? 해결함

  • 무기 안바꿔지던 부분
  • 박스랑 overlap발생안하던 부분

    이거는 Box의 Collision이 다른 걸로 되있어서 안되더라

    ItemBox로 바꾸니까 overlap발생하면서 잘 작동한다.

GENERATED_BODY ❓

GENERATED_BODY이거 클래스 제일앞에 왜 있는지 궁금해서 공식 문서 보니까..

그냥 와야 한다고하는데...? 뭐노?

게임 데이터

UE는 게임 앱을 관리하기 위한 용도로 게임 인스턴스라는 UE오브젝트를 제공을 한다. 이 게임 인스턴스가 캐릭터의 스탯을 관리하도록 설계를 하면은, 앱이 초기화 될때 캐릭터 스탯 데이터를 불러들이고, 게임 앱이 종료 될 때까지 캐릭터 스택이 보존된다.

굿굿. 좋은 기능이다...

언리얼 엔진 게임 시작 과정 ❗

큰 흐름은 UGameInstance::Init -> AActor::PostInitializeComponents(레벨에 속한 액터의 초기화) -> AGameMode::PostLogin(플레이어의 로그인) -> AGameMode::StartPlay, AActor::BeginPlay(게임 시작)

공식 문서는 게임 흐름 개요

액터의 생명 주기 이것도 보는김에 다시 같이 보자..ㅎ

데이터 관리

Excel형식은 UE에 임포트가 안됨. .csv만 되기 때문에 csv확장자로 import가능하다. 이거 csv파일 끌고와서

코드 작성해가지고 데이터 제대로 출력되는지 확인하도록한다.

... 확인 ...

그리고 이런 데이터를 관리할 다른 액터를 놔두어서 이 데이터만을 관리를 하도록 할 것이다.

데이터 직렬화 ❓❓

언리얼 오브젝트 처리

Actor Component는 Actor와 조금 다름, 말 그대로 Actor의 Component임.

그래서 Actor의 PostInitializeComponents에 대응되는 함수가 있는데 이게 InitializeComponent 함수이다.

이녀석은 PostInitializeComponents가 호출되기 전에 호출이 된다. 그래서 InitializeComponent함수를 통해서 컴포넌트의 초기화 로직을 구현해줄 수 있다.

(그전에 bWantsInitializeComponent값을 true로 변경해주어야 가능함)

UI제작

언리얼 엔진의 소스는 많은 수의 모듈이 뭉쳐진 집합으로 구성되어있다.

언리얼 에디어터가 자동으로 생성하는 개발 환경에 의해 핵심적으로 사용하는 몇개의 모듈만 개발 환경에 지정해 사용하고있었다.

우리가 사용하는 언리얼 엔진의 모듈들은 ArenaBattle.Build.cs에서 확인 가능함(C#파일)

UI를 사용을 할려면 해당 cs파일을 수정을 해야함.

모듈 설정을 마치고 컴파일을 누르면 에러 없어지는데

언리얼 C++프로젝트 관리를 담당하는 "언리얼 빌드 툴"이 모듈의 Build.cs파일을 분석해 프로젝트 컴파일 설정을 조정했기 때문이다.

언리얼 빌드 툴에 의해 UMG모듈의 헤더파일 경로는 별도의 설정없이 바로 사용할 수 있도록 기본경로로 설정됨.

해당 파일은 Source -> Runtme -> UMG폴더에 위치해 있음.



뭐가 많다.


이 블루프린트 클래스를Character에서 컴포넌트로 가지고 있고 User에게 계속 보이게 하기 위해 Screen모드로 설정해준다.

KINDA_SMALL_NUMBER ❓

float값을 0과 비교할 때 미세한 오차 범위 내에 있는지 보고 판단하는 것이 좋음.

UE는 무시가능한 오차를 측정할 때 사용하는게 KINDA_SMALL_NUMBER메크로 제공함

weak_ptr ❗❗

http://egloos.zum.com/sweeper/v/3059940

Actor && Object

Actor && Object

profile
공부 일기장으로 변해버린 블로그 (https://cjbworld.tistory.com/ <- 이사중)

0개의 댓글