지금 적이 NavMeshBoundsVolume부피를 차지해서
이동방식이 NavMeshBoundsVolume 안에 클릭한곳으로 이동하는건데 적이 있으면 바닥부분이 흰색으로 되서
흰색부분은 클릭을할수없어 매우 조작감이 불편하다
그럼 적이 NavMeshBoundsVolume를 차지하지않도록 바꿔보자
Details > Navigation 섹선아래 Can Ever Affect Navigation(네비게이션에 영향 주기 가능)을 체크해제하자
SetCanEverAffectNavigation을 false로변경하면됨
그럼 이제 문제없이 작동한다
적(더미)를 타격하면 타격감이 있도록 바꿔보겠다
추가할내용은
1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림
2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴
3. 더미르 공격시 더미의 위쪽에서 데미지UI가 나옴
4. 더미를 공격시 플레이어UI 위쪽에서 더미의 HP가 나옴
1번부터 해보자 간단하게 타이머를 사용해서 만들어보겠다
Pitch를 5부터 25까지 랜덤으로 값을 구하고 그값으로 갔다가 원래 상태로 돌아오면된다
타이머를 사용할때 더하는함수 뺴는함수를 두개 더하고 일일이 다 작성해도되지만 코드가 너무
난잡해지고 길어지니
람다[Lamda] 함수를 사용해보도록 하겠다
람다[Lamda]함수란 이름 없는 함수 이다
타이머나 간단한 계산에 자주 쓴다
형식은
[] () {}
[캡처] (매개변수) {반환형}
[] () {
UE_LOG(LogTemp, Warning, TEXT("람다가실행할내용이야"));
}
이런식으로 사용한다
람다는 타이머에서 많이 사용하는데
보통 타이머를 사용할때 타이머를 사용할함수를 미리 만들어둔다
이런식으로 말이다 이렇게 쓰면 resetComboAttack이라는 함수를 하나 더만들어야해서코드가 길어진다
(전프로젝트 타이머를 이런식으로 남발하다가 코드가 무진장 길어졌음)
그런데 람다함수를 쓰면 따로 함수를 만들지않아도 바로 사용가능하다
사용할 타이머 세팅해주고
우린 램덤값 (임시 : 5 ~ 25 ) 값으로 pitch를 변경할예정
FMath::randrage 함수를 사용할테니
헤당 헤더를 추가해주고
랜덤값을 구해준다
현재 rotation을 구해서 저장하고
랜덤피치값을 구한다음
pitch값을 랜덤값만큼 더해준다
그값으로 회전을 적용시켜준다음
람다식으로 타이머를 적용시켜서 원래의 currentRot으로 0.2초뒤에 실행시킨다
허수아비가 데미지를 받을때 해당 함수를 콜한다면
이런식으로 5 ~ 25 사이의 pitch값으로 변경하는걸 확인할수있다
1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림
2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴
2번을 해보자
메테리얼 파라미터 를 조절해서 자연스럽게 빨간색으로 바뀌게 해보도록 하겠다
더미가 사용하고있는 메테리얼노드에 들어가서
BaseColor에 VectorParameter노드를 만들고 빨간색으로 그리고 이름을 HitColor으로
Scalar Parameter인 노드를 만들고 수치를 0 그리고 이름을 HitAmount로해줬다
(HitColor가 1,0,0이면 너무 빨갛다 0.5,0,0 으로 해줌)
scalarParameter와 vectorparameter노드는 multiply 그리고 basetexture과 add 해서 베이스컬러에 연결
변수 선언해주고
타이머와 메테리얼 에대한 변수도 선언
비긴플레이에서
메테리얼 인스턴스를 만들어줘서 originMat에 기본 메테리얼값을 넣어줌
dynamicMat = scareCrowMesh->CreateAndSetMaterialInstanceDynamicFromMaterial(0, originMat);
해당 코드는 dynamicMat에 동적으로 메테리얼인스턴스를 생성하고 적용해준다
tick에서 계속 hitAmount값 (내가설정한이름) 에 값에 따라 현재 다이나믹메테리얼을 변경시키는 코드를 넣는다
람다함수로 타이머를 써서 1.0에서 0으로 0.2초타이머로 변경하는 코드를 추가하면
이제 더미를 때리면 자연스럽게 0.5,0,0 수치빨간색으로 변경되었다가 다시 돌아온다
1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림
2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴
3,4번은 데미지 허드 관련해서 새로 글을 작성하겠습니다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal UI - 적 정보가 담긴 위젯 띄우기 (0) | 2025.04.10 |
---|---|
Unreal UI - 데미지 표기(HUD) (1) | 2025.04.10 |
Unreal 캐릭터 - Overlap이벤트, 공격위치 판별하기 (0) | 2025.04.06 |
Unreal 캐릭터 - 물체 가속회전(EaseIn),피벗 위치변경, 액터스폰 (2) | 2025.04.06 |
Unreal UI - 프로그래스바 모양 변경하기 (1) | 2025.04.05 |