Simple State Machine Simple StateMachine 사용하기 편하고 심플한 StateMachine 이 필요하여 구현하였다. 일반적으로 사용가능한 BW.StateMachine.dll 유니티엔진에서 사용가능한 BW.StateMachine.Unity.dll 유니티에서 사용하는 방법은 간단하다. 유니티.. dev-youngil.tistory.com 이전에 개발한 Simple StateMachine을 좀 더 편하게 사용하기 위한 Code Generator(Unity)을 추가적으로 개발하였다. 이전 버전과 마찬가지로 Plugins에 DLL을 복사해준다. (이전버전과 다르게 BW.StateMachine.Unity.Editor.dll 이 추가되었다. 적당한 위치에 마우스 우측 클릭 Create -..
얼마전 Unity에서 Video Player를 통해 고용량의 비디오 클립을 재생하는데 버벅거림이 발생하였다. 해결방법은 GPU Decoding 방식으로 변경하면 CPU 사용량을 급격히 줄일수 있다. GPU Decoding 관련 자료는 https://software.intel.com/en-us/articles/hardware-accelerated-video-decode-in-unity Hardware-Accelerated Video Decode in Unity* This tutorial teachs you how to merge the hardware decode path within Unity* software. The main components within this solution are the cr..
Unity ML Agent 사용시 Python, Tensorflow 가 필요하다. Miniconda를 설치한다. https://docs.conda.io/en/latest/miniconda.html Miniconda — Conda documentation Miniconda Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others. Use th..
사용하기 편하고 심플한 StateMachine 이 필요하여 구현하였다. 일반적으로 사용가능한 BW.StateMachine.dll 유니티엔진에서 사용가능한 BW.StateMachine.Unity.dll 유니티에서 사용하는 방법은 간단하다. 유니티 프로젝트 Plugins 폴더에 2개 파일을 Import한다. 예제 스크립트 파일들.. 사용할 State들을 enum으로 정의한다. MyState.cs 파일에 Init, State1, Final State를 정의했다. 중요!!! enum으로 정의한 State 이름과 StateHandler Class 이름이 동일해야한다. 각 State이름에 맞게 StateBase을 상속받은 State Handler Class들을 구현한다. Enter()함수 Update()함수 Exi..
Unity 작업을 할때 Tag를 이용해서 작업하는 경우가 많은데.. 새로운 프로젝트로 옮긴다거나 리소스나 스크립트를 전달 할때 "Editor에서 Tag 추가해주세요"라고 가이드 하는 방법도 있지만 보다 UnityEditor가 열렸을때 해당 Tag가 없을경우 자동으로 추가 해주는 방법이 있겠다. 유니티에서는 ProjectSettings/TagManager.asset 에서 Tag리스트를 저장해놓는다. TagAdder에 추가하고 싶은 Tag를 넣어주면 된다. TagHelper에서 TagManager를 뒤져서 해당Tag가 없으면 추가하고 적용해준다. [InitializeOnLoad] Attribute는 에디터가 시작되면 자동 초기화 해준다. (https://docs.unity3d.com/kr/2019.3/Man..
SourceTree 사용시 같은 씬을 수정할때 씬 충돌이 발생할 경우가 많다.이때 Scene의 경우 YAML 파일이므로 개발자가 직접 보면서 수정하기는 쉽지 않다. Unity에서 제공하는 UnityYAMLMerge 툴을 이용해 쉽게 Scene, Prefab의 충돌에 대해 Merge해줄수 있다. 툴의 위치는 Unity\Editor\Data\Tools 에 있다. 경로를 복사해두자. 테스트를 위해 master브랜치와 testBranch를 만들고 각각 씬을 따로 편집하였다. 씬은 master 와 testBranch 로 나누었으며, Remote에는 master 브랜치만 push한 상태이다. master 브랜치 작업내용 testBranch 작업내용 소스트리의 도구 - 옵션 - 비교에 외부 비교 / 병합을 아래와 같..
아래 소스를 보자.인스펙터에서 몬스터 타입에 대한 기본적인 정보를 지정하려고 한다.예를들면 슬라임의 기본 공격력, 기본 방어력 등을 지정할수 있을것이다. 기본적으로 유니티에서는 배열의 개수에 따라 "Element 배열인덱스번호" 이름으로 지정하게 된다. 한두개야 일일히 열어서 본다쳐도... 개수가 많아지면?? 이 Element가 무엇을 나타내고 있는지 바로 알고 싶은데..Monster Type의 Enum값 이름으로 바꾸고 싶을땐 어떻게 할까? Project에 ArrayElementTitle.cs를 추가하고 아래와 같이 ArrayElementTitle 어트리뷰트를 추가하자.어트리뷰트의 인자값은 이름으로 설정할 PropertyName이다. 그럼 이렇게 짜잔!! .NetFramework 4.x 환경으로 개발되..