프로그래밍/Unity
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팀에서 업데이트를 했다...
그래픽(스프라이트) 없이도 UI Raycast하기
그래픽(스프라이트) 없이도 UI Raycast하기
2020.08.04보이지 않는 특정 영역을 Raycast하고 싶을 때가 있다. 이 경우 이전에는 새 게임오브젝트에 이미지를 만들고, 유니티 기본 그래픽으로 들어 있는 'UIMask'를 사용해 Raycast를 처리하였으나, 비효율적이라는 것을 깨달았다. - 보이지 않는 이미지이나 사실은 조금은 불투명한 이미지가 깔린다. (UIMask) - 어쨌든 이미지를 그리는 것이므로 배칭을 먹는다. - 이런 오브젝트가 많아질 수록 UI 최적화에 문제가 생길 수 있다. 해결 방법은 아래의 게시글에서 찾았다. https://answers.unity.com/questions/1091618/ui-panel-without-image-component-as-raycast-target.html UI panel without Image compone..
Unity : Child를 Destroy 후 ChildCount를 참조할 때 문제상황
Unity : Child를 Destroy 후 ChildCount를 참조할 때 문제상황
2019.11.28Destroy로 해당 오브젝트의 Child를 모두 삭제하고 싶을 때, for를 사용할 경우 보통 다음과 같은 코드를 짜게 될 것이다. for (int i = 0; i < transform.childCount; i++) { Destroy(transform.GetChild(i).gameObject); } 이후, ChildCount를 출력하면 어떻게 될까? for (int i = 0; i < transform.childCount; i++) { Destroy(transform.GetChild(i).gameObject); } print(transform.childCount); 그렇다. 0이 아니다. 처음에 이걸 알고 난 이후에 영문도 모른 채 자기자신을 공격했다. 왜 이런 일이 일어났을까? Destroy를 호출해..
ML-Agents 공부 (3) 190818
ML-Agents 공부 (3) 190818
2019.08.18본 카테고리는 "공부"입니다. 정보를 얻으실 때 사실과 다르거나 부정확한 정보가 들어있을 수도 있습니다. #은 공부하면서 스스로가 적는 코멘트입니다. 1) Academy 스크립트 작성 참 편리하게도 추상 클래스로 되어 있기 때문에, Academy를 상속받기만 하면 됨. 상속받으면 빈 프로젝트여도 Academy로 작동한다. #후에 라이브러리 공부하기 Inspector 창에서 Academy의 상세 정보 설정 가능. Time Scale : 배속. 15로 잡으면 15배속으로 학습이 이루어진다. Target Frame Rate : 목표로 하는 화면의 프레임. 2) Agent 스크립트 작성 Agent를 상속받으면 해당 스크립트는 에이전트로 판단됨. AgentReset Agent 초기화 함수. CollectObser..
ML-Agents 공부 (2) 190818
ML-Agents 공부 (2) 190818
2019.08.18본 카테고리는 "공부"입니다. 정보를 얻으실 때 사실과 다르거나 부정확한 정보가 들어있을 수도 있습니다. #은 공부하면서 스스로가 적는 코멘트입니다. - 외부 텐서플로우는 유니티와는 독립적으로 작동. - 유니티 내부에서 관측된 환경을 텐서플로우로 보내고, 텐서플로우는 어떤 작동을 시켜야 할 지 브레인으로 보냄. - 그 후 브레인에서 에이전트로 보냄. 에이전트(Agent) - 액터(Actor). 주변 정보를 관측할 수 있다. - 선택 및 행동을 실행하는 데, 이 때의 결과에 따라 보상과 처벌을 받음. (강화학습) 브레인(Brain) - 정책 결정자. 에이전트의 선택과 행동을 결정함. - 단, 브레인을 공유하는 에이전트가 서로 정보를 교환하는 것은 아니다. 정책과 경향이 같은 것 뿐. - 브레인은 종족/사상..
ML-Agents 공부 (1) 190818
ML-Agents 공부 (1) 190818
2019.08.18본 카테고리는 "공부"입니다. 정보를 얻으실 때 사실과 다르거나 부정확한 정보가 들어있을 수도 있습니다. 1) 환경 구축 - Python 3.6.8 +Anaconda - ML-Agents 0.6.0 - Unity 2017.4.31f1 구버전이지만, 강의 자료의 버전은 이와 같은 상태였기에 적용하였음. 2) 패키지 설치 - Anaconda prompt 실행 - conda create -n ml-agents python=3.6 명령어로 ml-agents 개발환경 생성 - conda activate ml-agents 명령어로 ml-agents 환경 로드 - pip 및 ml-agents에 필요한 라이브러리 설치 3) 유니티 내에서 ml-agents를 실행하기 위해, Linux 빌드 서포트를 추가해야 함