language:unity:playmaker:screenpick
목차
screenpick의 example
목표
- 화면 상의 특정 오브젝트를 클릭했을때,
- 디버그 윈도우 화면을 불러온다.
- 다시 해당 오브젝트를 클릭하면, 디버그 윈도우를 닫는다.
FSM
사용할 변수
- didPickObject : 게임오브젝트가 선택 되었는가?
- pickedGameObject : 선택한 게임 오브젝트 저장
- mouseX, mouseY : 마우스가 클릭된 화면상의 위치
- isDebugMenuOnScreen : 디버그윈도우가 화면에 보이는 상태인지?
'wait' state
- 화면의 버튼눌림이 감지되면, 'menuMoveReaction' 이벤트를 보낸다.
- Get Mouse X와 Get Mouse Y로 클릭된 화면상의 (x,y)를 얻는다.
- Get…이 위로 가야하나 싶었는데, 순서는 상관 없었다.
- Get Button Down과 같은 마우스 클릭에 대한 액션이 없으면, x/y 좌표를 얻을 수 없었다.
'checkObject' state
- Screen Pick : 전제 조건이 있어서 헤매는 부분.
- Screen Pick으로 클릭된 위치의 오브젝트를 얻는다.
- <color red>Screen X / Screen Y가 설정되지 않으면, 오브젝트를 얻어오지 않았다.</color>
- didPickObject와 pickedGameObject 에 확인된 오브젝트를 저장한다.
- Game Object Compare : 간단한 부분.
- pickedGameObject와 “MonkeySymbol”(=내가 찾으려는 오브젝트)가 같은지 비교한다.
- 같으면, 'menuMoveReaction' 이벤트를 발생시킨다.
'isMenuOnScreen' state
- isDebugMenuOnScreen, bool 변수를 검사
- true : debugMenuOff 메시지 전송 (메뉴를 꺼라)
- false : debugMenuOn 메시지 전송 (메뉴를 불러오라)
'debugMenuOn' state
- 어떤 오브젝트에 메시지를 보낼 것인지 ( 감각적으로는 그냥 함수 호출이지만 ) 정한다.
- Scene 내부의 DebugObject에 붙어 있는 Component의 스크립트 함수를 호출한다.
- debugMenuOn은 함수 이름으로 파라미터가 true면 메뉴를 불러오고 , false면 메뉴를 닫는다.
- 다음 상태 체크를 위해서, Set Bool Value 액션으로 bool 값을 바꿨다.
'debugMenuOff' state
language/unity/playmaker/screenpick.txt · 마지막으로 수정됨: 2024/04/23 22:45 저자 127.0.0.1