전체 분류
Unity UGUI InputField의 한글 입력 문제 해결하기
Unity UGUI InputField의 한글 입력 문제 해결하기
2020.12.15Unity의 UGUI에는 고질적인 한글 입력 문제가 있다. 예를 들면 아래와 같은 것. 이외에도 입력한 한글이 바로 Inputfield에 나타나지 않는 등의 문제가 많았다. 이 현상을 해결하려고 GUI TextField를 쓰는 등 다양한 짓을 해봤었으나, 최근 확실한 해결 방법이 나왔다. forum.unity.com/threads/inputfield-bugs-korean-language.728858/ Unity UI - InputField Bugs Korean Language WTF? can you see two bugs? How can I fix this? Please help. [MEDIA] forum.unity.com 본 링크에서 한국인 개발자분이 제보해주신 덕에 유니티 UI팀에서 업데이트를 했다...
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 구현 단계(2)
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 구현 단계(2)
2020.12.14이번에 추가된 기능만 언급하겠다. 1. 추가 검색 기능 유저 추가 시, 최근에 파티했던 유저도 자동으로 검색하여 추가할 수 있다. Toggle로 되어 있어 추가하고 싶지 않은 유저는 체크를 해제하면 된다. 편의 기능임에도 불구하고 본 기능보다 노력이 더 들어가는 걸 보면, 역시 UX는 골치아픈 것 같다 (...) 2. 설정 화면 기획대로 구현했다. 조합 초기화는 사라졌지만. 또한 플레이어 정보를 가져올 때, 포지션을 가져오면 API 호출 횟수가 너무 많아져서 설정 화면에 따로 빼두었다. 사이퍼즈 API의 경우 1초에 호출 한도가 정해져있는데, 이를 고려하기 위해 실패 시 API Call을 잠시 기다렸다가 수행하거나, 쿼리를 나누어 사용하는 등의 일을 해야 했다. 유저 포지션을 가져오려면 비용이 많이 들 ..
D'Dialogue System (대화창 시스템)
D'Dialogue System (대화창 시스템)
2020.12.14UGUI에서 사용할 수 있는 간단한 대화창 시스템입니다. 무료에요! 기능 - 텍스트 색, 크기, 속도 변경 - 텍스트 출력 중간에 캐릭터 스프라이트 변경 가능 - 원하는 타이밍에 사운드 재생 - 창 강제 닫기, 스킵 불가능 지원 - 선택지 시스템 예시 텍스트 출력 도중, String에 명령어를 넣는 것만으로 언급된 기능들을 손쉽게 사용할 수 있습니다. 자세한 사용 방법은 다운받은 에셋의 document 파일을 참조하거나, 깃허브 페이지를 열람하세요. 깃허브 페이지 유니티 에셋 스토어 페이지
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 구현 단계(1)
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 구현 단계(1)
2020.12.11일단 기초적인 구현은 했다. 유저 추가, 유저 선호 반영, 랜덤 매칭, 유저 삭제 등의 기능이 구현되어 있는 것을 확인할 수 있다. 사이퍼즈 API와의 연동도 수행했는데, 내가 검색한 유저가 실제로 존재하는지 여부를 확인한다. 선호하는 유저끼리 매칭되게 하는 부분이 조금 골칫덩이였는데, 해당 유저들은 묶어서 그룹으로 만들었다. 인원이 많은 그룹부터 파티를 배정하는데, 현재 가장 인원이 적은 팀 쪽으로 이동하게 했다. 조건 중 아직 구현하지 못한 내용은 다음과 같다. 1. 탱커/근딜러/원딜러/서포터 포지션을 가능한 한 정조합으로 만들어 나누면 좋다. 2. 유저 이름과 포지션 정보를 설정할 수 있는 화면이 존재해야 한다. 3. 포지션 정보는 최근 플레이 정보를 수집하여 가져올 수도 있다. (사이퍼즈 오픈 A..
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 기획 단계
[Unity] 사이퍼즈 파티 메이커 앱 개발기 - 기획 단계
2020.12.11늘상 클랜원들과 사이퍼즈를 돌리곤 하는데, 요새는 사람이 5인보다 많아서 파티를 나눠야 할 지경이 되었다. 하지만 어떻게든 5인팟이 만들어지게끔 "오늘 나는 안하겠다"며 양보하려는 착한 클랜원들을 보며... 고마웠지만 답답한 건 어쩔 수 없었다. 그냥 파티를 나눠줬으면 해! 하지만 일반 뽑기나 사다리타기 앱은 여러 예외 조건이 있어 그닥 도움이 되지 않았다. 어쩌겠는가. 직접 만들기로 했다. 조건 1. 인원에 따라 파티를 나눠야 한다. (8인이면 4/4, 9인이면 4/5, 3/3/3 등) 2. 같이 붙어 있어야 하는 사람들을 붙여놓아야 한다. (ex : 커플, 나는 이 사람 없으면 게임 안 하는 유저들) 3. 탱커/근딜러/원딜러/서포터 포지션을 가능한 한 정조합으로 만들어 나누면 좋다. 4. 세로 화면 ..
해치웠나(Did we get it) 제작일지 #05
해치웠나(Did we get it) 제작일지 #05
2020.11.28오늘은 제작일지라기보단 계획에 가깝다. SRPG이다보니 좌표 중심의 구현을 하려 하는데, 헷갈리는 게 한 둘이 아니라서 써보면서 생각하려 한다. 우선 이 맵부터. Size로는 10x5의 맵이다. 좌표계를 우측 모서리가 x라고 치고, 박스가 있는 위치를 말하면 (0, 3)이다. ...이것부터 좀 고통스럽다. 0부터 시작하는 좌표계로 연산을 하면 사람 머리에서 헷갈리고, 그렇다고 1부터 시작하는 좌표계로 연산을 하면 코딩할 때 헷갈린다. 일단은 1부터 시작하는 좌표계를 사용하려고 하는데, 미래에 버그가 많이 난다면 여백을 준비해뒀으니 불만을 토하길 바란다. 내가 보기엔 훗날 100퍼센트 이 아래에 뭔가 써질듯. 제정신이냐 타일과 오브젝트는 분리하여 구현해야 할 것 같다. 타일은 게임 실행 내내 변동되지 않는..
[C#] WinForm으로 간단한 카운터 프로그램 만들기
[C#] WinForm으로 간단한 카운터 프로그램 만들기
2020.11.26개인적인 용도로 메모용의 카운터가 필요했는데, 가볍고 작게 만들어진 프로그램이 없어서 직접 만들기로 했다. 아래는 실제 구현된 결과이다. 필요 기능 정리 바탕화면에 둘 수 있는 작고 간편한 카운터를 원했기 때문에, 다음 기준을 만족시켜야 했다. - 좌클릭하면 증가 - 우클릭하면 감소 - 0으로 리셋 가능 - 원하는 숫자로 설정 가능 - 프로그램을 종료했을 때에도 마지막 숫자를 가져올 것 구현 윈도우 폼으로 구현했다. 간편하게 GUI 환경에서 프로그램을 만들 수 있어서 선호한다. 위쪽으로 Label을 배치하고, 아래에는 작은 pictureBox를 달았다. pictureBox를 눌렀을 때 메뉴가 뜰 수 있도록 contextMenuStrip을 배치했다. Reset을 클릭하면 카운터가 0이 되도록 메서드를 연결..
해치웠나(Did we get it) 제작일지 #04
해치웠나(Did we get it) 제작일지 #04
2020.11.13에디터 제작 4일째. 기존에 MapMaker에서 MapTool을 분리해 클래스를 새로 만들고 정비했다. 결과, Tiles, Height, Object를 선택할 수 있게 되었다. Tiles에서 타일 색을 고르고, Height에서 타일의 높이를 선택, object에서 타일 위에 올릴 장식물을 선택할 수 있다. 그래서 이런 게 가능해졌다. 이제 나무도 오브젝트에 넣고, 길도 깔고 하는 등 대대적으로 내부 내용을 손 보면 되겠다. UI에 3D 오브젝트를 올리고 싶어서 이것저것 찾고 있었는데, 임시로 캔버스를 카메라에 렌더하도록 설정했다. forum.unity.com/threads/what-is-the-best-way-to-display-3d-models-as-ui-elements.343205/ 도움을 받은 게시..
해치웠나(Did we get it) 제작일지 #03
해치웠나(Did we get it) 제작일지 #03
2020.11.12오늘은 친구인 바모씨가 라이트 설정에 대해 알려줘서 적용하고 왔다. 컬러 스페이스는 두 가지로 나뉘어지는데, 리니어와 감마이다. 리니어에서 블렌딩 결과는 예상하는 결과 그대로지만, 감마에서는 채도와 밝기가 과도하게 높아진다고 한다. 따라서 리니어에서는 강한 빛 아래서의 색 표현을 훨씬 풍부하게 할 수 있다고 한다. 실제로 바모씨의 조언은 '아트님들이 라이트는 리니어로 하랬어!'였으니까, 리니어로 적용해보는게 낫겠다. 그러나 이런 그래픽적 이슈를 들고 왔을 때 언제나 궁금해지는 건 성능 이슈가 아니던가. forum.unity.com/threads/linear-vs-gamma-color-space-for-android.573175/ Linear vs Gamma color space for Android He..
해치웠나(Did we get it) 제작일지 #02
해치웠나(Did we get it) 제작일지 #02
2020.11.11에디터 개발 진행중이다. 위는 약식으로 테스트를 돌려 본 화면이고, 코드상에서는 에딧을 할 수 있도록 밑작업을 했다. 다만 현재 일일이 왼쪽 마우스로 타일을 클릭해야만 작동하는데, IPointerDown으로 진행했기 때문이다. 드래그해도 편집할 수 있도록 변경이 필요해 보인다. 타일의 높낮이를 설정하는 것도 필요한데, 이는 타일 변경과는 다른 방법으로 해야겠다. 게임에서 모딩을 지원하는 것이 아니기 때문에, 에디터는 나만 알아볼 수 있으면 될 듯 하다. 설-마 모딩을 지원할까. 그런 일은 일어나지 않았으면 좋겠다. 미래의 나. 코드 작업만 하면 실질적인 결과물은 많이 보여줄 수 없어서 아쉽다. Private로 작업하니까 코드를 올릴 수 있는 것도 아니고. 배칭 문제가 Static으로 해결되는지 알고 싶어..
해치웠나(Did we get it) 제작일지 #01
해치웠나(Did we get it) 제작일지 #01
2020.11.10해치웠나는 조금은 라이트한 SRPG로 제작될 예정이며, 이에 따라 쿼터뷰를 쓰기로 했다. 탑뷰도 물론 나쁘진 않다만, 사용하려고 마음먹은 에셋으로 맵을 돌려보니까 둘의 그래픽 차이가 좀 나서 별로였음. 그리고 내가 RPGMaker식의 탑뷰에 질려 있기도 했고 말이다. 아무튼, 오늘 작업한 건 두가지다. 1. 타일 메이커 2. 아이소메트릭 카메라 타일 메이커는 작업의 효율성을 위해 만든다. 실제로는 에디터로 맵을 만들어놓고, 결과물을 전부 스태틱 & 라이트맵 처리를 해 버릴 것이다. JSON으로 데이터가 입출력을 할 수 있도록 만들 것이다. 아이소메트릭 카메라는 쿼터뷰의 축이 다른 카메라와는 다르다보니, 직접 만들어야 했다. 아래는 결과. Create 버튼은 테스트를 위해 랜덤으로 맵 내용만 바꾼다. 이후..
[Asset 제작 일지] 대화 시스템 만들기 14 : 선택지 시스템 업데이트
[Asset 제작 일지] 대화 시스템 만들기 14 : 선택지 시스템 업데이트
2020.10.12깃허브 이슈에 선택지 시스템 관련 요청이 와서, 스스로 생각했을 때도 필요한 기능이었으므로 업데이트했다. 1. DialogSelect/DialogSelectItem Class DialogData 하위에서 객체로 참조할 수 있도록 새 클래스를 만들었다. 내용은 사실상 Dictionary의 하위호환이다. DialogSelectItem은 string의 Key와 Value가 존재한다. DialogSelect에서는 이를 리스트로 만들어 참조하고, 추가한 순서대로 선택지를 표시한다. 그럼 왜 Dictionary로 구현하지 않았느냐? 나중에 JSON 데이터 입출력을 위해 시리얼화될지도 모르기 때문이다. SerializableDictionary 에셋 같은 걸 쓰면 간단하지만, 에셋스토어는 다른 에셋에 대한 의존성이 없..