프로젝트 VV 개발일지(0)/다이어리
06.01 마커 이펙트
누가 뭐래도 개발자
2025. 6. 1. 22:24
2025.06.01
오늘의 목표
마커 이펙트, 카메라 자유이동 모드 문제 해결
작업 내용
- 우클릭 마커 이펙트 적용
- 카메라 자유이동 모드에 포커스, 뷰포트 인식 조건 추가
버그 / 문제점
- 마우스가 화면 밖으로 나가면 화면이 좌상단으로 이동하는 문제
지난번에는, 화면 안으로 강제 고정을 해서 문제를 회피했지만, 윈도우 키를 누른다거나 해서 화면 밖(뷰포트)으로 커서가 나가게 되면 여전히 좌상단으로 이동하는 문제가 있다. => 근본적인 해결책은 아님.
원인: 현재의 GetMousePosition()는 게임창이 포커스를 잃으면 X, Y 좌표값에 0 또는 -1의 값을 채워 넣는다.
해결: 엣지 스크롤의 조건을 게임창이 활성화 상태이면서 커서가 뷰포트 내에 있을 때로 추가해준다.
FApp::HasFocus(): 게임 창이 현재 활성 창인지 확인
ViewportClient->GetMousePosition(MousePosition): 마우스 커서가 게임 뷰포트 영역 내에 있는지 확인
FApp::HasFocus() 를 사용하기 위해서 #include "Misc/App.h" 헤더 추가.
배운 것
- 마커 이펙트
에셋을 구매했다.
커스텀 되는 상호작용 마커인데, 기본으로 제공되는 블루프린트는 마우스에 오버랩 되는 형태와 클릭시 애니가 나오는 형태로 되어있다.
나는 마우스 우클릭 시 일회성 애니메이션이 나오는 것과 상호작용 모드 용으로 두가지 형태를 사용할 생각이다.
우클릭 시 기존 블루프린트 이용.
상호작용 시 스폰/ 제거 코드 추가.
- 오브젝트 풀링
1초에 수백번 이상 일어나는 생성/ 파괴를 효율적으로 재활용하는 방법, 이동 마커의 경우 그정도의 비용이 발생하지 않기에 이대로 쓰기로 했다.