Question>
아래 link 참고해서 마우스를 구현했고,
http://udn.epicgames.com/Three/DevelopmentKitGemsCreatingAMouseInterfaceKR.html
1인칭 시점에서 마우스로 가리킨 방향에다가 총을 쏘려고하는데,
저 페이지나온 trace함수는 보니깐, 객체가 있어야 추적이 되는거 같은데 맞나요?
저기서는 객체에다가 키즈맵을 추가해서 객체에다가
마우스 이벤트를 주는 방식으로 총을 쏘던데
그방법 말고 마우스가 가리키는 방향을 알아내서
총을 마우스 방향으로 쏘게는 못할까요?
몇일동안 구글링 계속했는데도 방법이 딱히 나오지도 않네요.
-------------------------------------------------------------
Answer>
아래 link는 조준선으로 아군과 적군을 구별하는 것에 관한 내용입니다.^^
(unreal engine 3(or UDK) 기준으로 설명되어 있습니다.^^;;;)
http://cafe.naver.com/igc123/118
http://cafe.daum.net/igc123/K3VE/89
그리고,
아래 link는 mouse나 touch로 drag n drop 구현하는 것에 관한 내용이고요.^^
(unreal engine 3(or UDK) 기준으로 설명되어 있습니다.^^;;;)
http://cafe.naver.com/igc123/13
http://cafe.daum.net/igc123/K3VE/10
위 link에서 공통적으로 나타나는 함수가 2개 있습니다.
바로 Deproject()와 Trace()입니다.^^
님의 질문에서 님이 얘기한 내용대로 대응하면 아래와 같습니다.
'마우스가 가리키는 방향을 알아내서' => Deproject()
'총을 마우스 방향으로 쏘게' => Trace()
위 2개의 함수를 응용하시면, 님의 문제는 해결됩니다~ ^^
P.S.
위 link의 방법들을 unreal engine 4에서 쓸 경우,
class UCanvas의 UCanvas::Deproject()를 호출하시면 됩니다.^^
하지만,
해상도의 크기를 구할 수 있는 상태(또는 해상도 크기를 이미 아는 상태)이고,
canvas 관련 함수를 수정할 수 없는 상황이라면..^^;;;;;;
(또는 canvas를 다룰 수 없는 곳에서 호출해야 하는 상황이라면..^^;;;;;;;)
class FSceneView의 FSceneView::Deproject()나
FSceneView::DeprojectFVector2D()를 사용하셔도 같은 효과를 볼 수 있습니다~ ^^
UE3의 Trace()는 UE4의 class UWorld에 정의되어 있는,
LineTraceSingle()이나 LineTraceMulti()로 대신하시면 됩니다~ ^^
Tag:
안기훈, Kee Hoon Ahn, 언리얼, Unreal, UDK, iPhone, iPad, app, 앱, iOS