본문 바로가기

UnrealEngine

[UE] 액터 블루프린트, 블루프린트 상속 후 이벤트 처리

언리얼 ⇒ 이벤트 기반 프로그래밍, 이벤트와 액션이 중요함

 

1. 구현화되어 있는 이벤트

2. 프로젝트에 새로운 유형의 레벨 추가하는 방법

3. 캐릭터는 폰을 상속받고, 폰은 액터를 액터는 오브젝트를 상속받는 구성. 기능이 하나하나 추가된다.

 

⇒ 게임모드 베이스를 선택하였다면, 게임 스테이트 베이스를 선택해야 한다. 추가 기능이 있고 없음에 차이.

 

⇒ 액터를 좌우로 움직이게 하는 이벤트그래프.

 

⇒ 위의 이벤트 그래프를 타임라인을 사용하여 재생성

⇒ DeltaSeconds의 소수점을 없애주기 위해 아래의 4가지 방법을 사용.

  • Floor: 가장 가까운 정수로 내림한다.
  • Round: 가장 가까운 정수로 반올림한다.
  • Ceil: 가장 가까운 정수로 올림 한다.
  • Absolute: 절댓값(양수)을 반한다.

⇒ 함수 사용 후. 복잡했던 그래프가 보기 쉬워짐. 수정 용이

⇒ 함수의 디테일 창에서 퓨어를 선택하면 실행 라인이 사라짐. 퓨어로 만든 함수 안에서 Set 하여 기존 데이터에 변화를 주는 것을 절대 하면 안 됨. 시점을 명확하게 알 수 없어 디버깅 불가능. 그렇기 때문에 순수하게 기존 데이터를 가공하여 결괏값만 내보내주는 처리 기능으로만 사용 가능함.

 

⇒ 프로젝트 세팅에서 원하는 설정의 콜리전 프리셋을 생성할 수 있다. 컴포넌트의 콜리전 프리셋에서 만든 프리셋을 선택하여 사용한다.

 

1. 다른 BP 클래스를 변수로 설정

2. 인스턴스 편집가능을 체크

3. 레벨에서 SwitchBox를 선택하고 디폴트에 생긴 변수를 각 BP클래스로 설정.

 

⇒ SwitchBox가 오버랩되면 레벨에 배치된 모든 액터들이 움직임 시작

 

 

1. Timer

2. TimelineLeftRight

3. MoveRact

4. MoveLeftRight

⇒ BP 클래스 액터를 복사하여 레벨에 배치한 뒤, SwitchBox에 오버랩되면 모두 동작하도록 하고 싶을 때, 만들었던 변수를 우킬릭 하여 변수형 변환을 클릭하면 배열로 변한다. 그 뒤 배치된 SwitchBox에서 배열의 인덱스에 각각의 BP클래스를 설정하면 모두 정상적으로 동작이 가능하다.

 

 

⇒ 형변환이란 해당 오브젝트가 찾는 오브젝트가 맞는지 확인하는 것. 형변환하면서 배열의 해당 인덱스의 정보가 구체화된다.

 

⇒ 기능을 만들 때마다 Casting이 늘어남. 형변환을 하여 해당 클래스가 아닐 경우, Casting Failed로 넘어간다.

 

⇒ EventActor 클래스를 생성 후 MoveLeftRight의 부모클래스를 생성한 이벤트액터로 변경

 

1. 함수 오버라이드로 생성

2. 새로 호출하고 싶은 경우 우클릭 → 부모 호출 추가

3. 해당 DoPlay가 호출되면 IsPlay가 True가 된다. 부모:DoPlay는 만든 이벤트액터의 함수에서 실행되는 로직이 그대로 실행된다.

4. 함수의 오버라이드를 확인하면 이벤트액터에서 생성한 DoPlay가 생성된 것을 확인 가능

 

⇒ 한 번의 호출로 이벤트 액터를 부모로 상속한 모든 BP 클래스 안의 DoPlay가 실행된다. 이후 기능을 추가하고 싶으면 이벤트 액터를 상속한 후 DoPlay에 넣어주면 된다.