밟으면 이동하는 컴포넌트를 만들겠습니다.
새로운 블루프린트 클래스로 액터 컴포넌트를 만듭니다.
함수에 + 버튼을 눌러 추가하고 Trigger라고 이름 변경했습니다.
오른쪽 디테일 패널에서 입력을 추가하여 액터 레퍼런스로 지정하고 이름은 TargetActor로 변경했습니다.
새로운 블루프린트 액터 컴포넌트를 만듭니다.
함수를 추가하고 작동이라고 이름 변경합니다.
변수도 추가하여 액터 레퍼런스로 지정하고 실행대상이라고 이름 변경하고 눈을 뜨게 해 줍니다.
작동 함수에서 Get 실행대상을 가져와 Get Component by Class 노드를 연결합니다.
이를 Is Valid 노드와 연결하고 Trigger와 연결합니다.
Get component 노드로 실행을 가져왔기 때문에 그 안의 Trigger 함수를 쓸 수 있게 된 것입니다.
작동에 대한 자손 블루프린트 클래스를 생성합니다.
작동 액터를 밟으면 실행할 대상이 움직이는 걸 원하니 작동_Hit라고 이름 변경했습니다.
Bind Event to On Actor Hit 노드를 추가하고 Target에 Get Owner, Event에 Custom Event를 연결하였습니다.
이벤트는 Hit로 이름 변경했습니다.
이 상태로 작동과 연결해도 되지만 어느 방향에서 Hit 해도 실행될 것입니다.
위에서 밟을 때만 실행되도록 해보겠습니다.
Break Hit Result 노드를 추가하고 ▽ 버튼을 눌러서 Normal을 찾습니다.
Normal에 Break Vector 노드를 추가합니다.
Z축을 <노드와 연결하여 0보다 작을 경우 Branch 노드를 통해 작동 함수로 이어지도록 합니다.
0보다 작은 경우 = 위에서 밟은 경우
별 필요는 없지만 Z축 값을 플레이중에 확인하기 위해 Print String 노드를 추가했습니다.
위에서 작동 액터를 밟았을 때 Z축 값이 몇인지 확인해 볼 수 있습니다.
컴파일, 저장하고 나옵니다.
실행에 대한 자손 블루프린트 클래스를 생성합니다.
작동 액터를 Hit 한다면 실행 액터가 Move 하도록 만들 것입니다.
자손 블루프린트로 생성했으니 실행 컴포넌트의 함수를 가져올 수 있게 됩니다.
함수에서 Trigger를 가져옵니다.
Get Owner 노드를 통해 Get Actor Location 노드를 추가합니다.
이동량을 밖에서도 변경할 수 있도록 + 노드를 추가하여 아랫값을 변수로 승격시키고 이동량으로 이름 변경했습니다.
마지막으로 Set Actor Location 노드를 연결하여 주면 됩니다.
Get Actor Location이 이 컴포넌트를 가진 액터의 위치 정보를 가져온다고 Set Actor Location을 이 위치를 변경해 주는 역할입니다.
Set Actor Rotation 노드를 연결해 방향도 바꿔줄 수 있습니다.
게임 플레이 화면으로 왔습니다.
발판 2개를 만들어주고 첫 번째 발판에 작동_Hit 컴포넌트를 넣었습니다.
실행대상은 두 번째 발판으로 지정했습니다.
두번째 발판에 실행_Move 컴포넌트를 넣어주고 무버블로 변경합니다.
컴포넌트의 변수값인 이동량을 -100으로 하여 내려오도록 했습니다.
무버블 오브젝트는 게임에서 이동 및 변경이 가능하고 스태틱은 불가합니다.
Spawn System at Location 노드를 통해 이펙트도 추가해 보았습니다.
첫 번째 발판을 밟을 때마다 두 번째 발판이 내려가는 것을 볼 수 있습니다.
왼쪽 위의 출력되는 메시지를 보면 -0.9의 음수값이 출력되는 것을 볼 수 있습니다.
작동_Hit 컴포넌트에서 0보다 작을 경우만 실행되도록 만들었기에 옆이나 아래에서만 실행되도록 수정 가능합니다.
사용한 언리얼 버전: 5.4.1
'언리얼 블루프린트 > 컴포넌트' 카테고리의 다른 글
[언리얼5 블루프린트] 발사하는 컴포넌트 만들기 (0) | 2024.08.12 |
---|---|
[언리얼5 블루프린트] 인터페이스를 이용한 이동 컴포넌트 만들기 (엘리베이터) (0) | 2024.08.12 |
[언리얼5 블루프린트] 캐릭터의 체력 컴포넌트 만들기 (0) | 2024.08.09 |
[언리얼5 블루프린트] 액터 Hit 컴포넌트 만들기 (0) | 2024.08.08 |
[언리얼5 블루프린트] 캐릭터의 공격 컴포넌트 만들기 (0) | 2024.07.09 |