일지 작성하려는데 에디터가 바뀌었길래

공지를 읽어보니 이미지 크기 조절이 가능해졌다고 함.

이제 hr태그만 넣어주면 좋을 듯 ㅠㅠ

글쓰기 에디터 개선 안내 - 공지사항 갤러리

안녕하세요? 디시인사이드입니다.[v4.9] - new글쓰기 에디터가 새롭게 변경되었습니다. 기존 에디터와 달라진 점을 안내드립니다.[개선된 이미지 조절 기능]새 에디터에서는 업로드된 이미지, 동영상, 디시콘 등을 끌어

gall.dcinside.com


인풋 장치 지원, 다인 플레이 + UI 조작을 고민하고 구현해보다보니 시간을 많이 소모함.

그래도 처음으로 구현해봐서 기쁜 것이야!

얏호


기능은 전반적으로 인풋 시스템에 동봉된 Player Input + Manager 컴포넌트에 의존하고 있음.

직접 구현해보려고 했는데

다인 플레이에 다중 입력 장치에 연결했다 끊겼다 이러고 있으면 너무 복잡해서 안될듯함. ㅠㅠ

해당 컴포넌트 설명은 공식 문서 참조.

Workflow Overview - Actions and the PlayerInput Component | Input System | 1.12.0 - 공지사항 갤러리

Workflow Overview - Actions and the PlayerInput Component | Input System | 1.12.0

docs.unity3d.com


7dec9e21ecd418986abce89547887064c5e7cd

덕분에 이런 식으로 마우스, 패드 교체가 가능해졌고

자동 전환이 일어날 때 이전 기기 취소 동작도 발생해서

입력 꼬일 걱정이 사라졌음.


인풋 시스템 넌 최고야..

반짝



구현방식을 간단히 설명하자면

1eb3d136a59a69ef20afd8b236ef203ed45e06df52aba7dea7

초기화 시

현재 Action Map과 Action을 모두 딕셔너리에 저장해주고

UI만 활성화시켜주도록 함.


사용 시에는 Enable로 플레이 시 map 활성화

disable을 이용하여 ui 진입 시 ui 외 모든 입력 차단,

restore을 사용하여 ui에서 복귀 또는 다른 입력에서 복귀(eg. 차 조종 -> 내려서 인간 조종)를 함.

간단한 게임이라 이정도만 있어도 되는 것 같음.


나머지 디바이스 연결이나 전환 등은 PlayerInput 컴포넌트에서 수행함.



다인 플레이를 지원하기 위해 Player Input Manager 컴포넌트도 사용하는데

위에서 구현한 것과 비슷하고,

새로 구현해준 플레이어 인풋들을 관리해주는 기능들이 추가됨.



사용할 때에는 이런 식으로 사용함.

1eb3d136a59a6aef20afd8b236ef203e94c893296c833d4504

각 액션 맵에 따른 핸들러를 만들어주고

거기서 각 액션들에 대한 이벤트를 구독함.


이제 각 액션을 필요한 객체가 구독/해제하면 끝!

현재 map 상태 신경 쓸 필요 없이 사용 가능해짐.


1인 플레이 구현할 때에는 간단했는데

다인 플레이는 신경써줘야할게 많은 듯..

시무룩


참고. UI를 항상 활성화해두는 이유는 비활성화되면 UI 못누름...