프로그래밍/유니티 프로그래밍
Unity를 Visual Studio for Mac 와 함께 사용하기
2017. 7. 28.몇 번 블로그에 언급했듯이 요즘 병역 특례를 구하고 있고, 면접 일정도 몇 개 잡혀서 준비하고 있다. 노트북을 지참하라고 하길래 Unity와 기타 코딩 테스트를 볼 수 있는 환경으로 세팅했다. 원래는 Unity와 Visual studio Code를 연동하고 Unity를 서포트해줄 수 있는 익스텐션들을 설치하여 사용했다. 개인적으로 모노 에디터를 싫어하는 편이고(워낙 안 좋은 기억이 많아서...) 세팅 방법도 포스팅했던 적이 있었던 만큼 편리하게 사용했던 기억이 있다. 최근에는 Windows 위에서 작업하느라 그냥 Visual Studio를 이용했는데 노트북은 MacOS라 다시 세팅했다. 서론이 좀 길었던 것 같지만 요점은 드디어 Visual Studio for Mac이 나왔더라는 점이다. 조금 지난 이야..
UniRx 활용하기(2) - A와 B 사이의 일 처리하기
2017. 7. 8.이벤트를 처리하다 보면 A가 일어난 후에 B가 일어나기까지 반복작업해야 하는 일을 만들어야 할 때가 있다. 예를 들어 (예제의 내용이지만) 마우스 드래그를 표현할 때 마우스 버튼이 눌리고 때어질 때까지 마우스의 움직임을 캡처하여 오브젝트의 회전에 반영하는 상황이나 특정 조합키를 입력해서 캐릭터의 춤동작 애니메이션을 재생하고 다른 특별한 입력이 있을 때까지 애니메이션을 반복 재생하는 상황이 있을 수 있겠다. 우선 기존의 프로그래밍 방법을 유니티 초심자의 입장에서 생각해보자. 마우스 드래그를 보게 되면 (1)오브젝트의 Update 문에 마우스의 위치와 오브젝트의 Rotation을 연동시키는 코드를 삽입하고 또, (2)마우스 버튼이 눌렸을 때와 릴리즈될 때를 캐치하여 bool 변수(isDraged 정도)를 통..
UniRx 활용하기(1) - Where과 Select 사용하기
2017. 7. 3.저번 포스팅에서는 UniRx가 모든 것을 스트림으로 보는 프로그래밍 방식이고, 스트림을 어떻게 만들고 사용하는지에 대해서 공부했었다. UniRx는 이렇게 만든 스트림을 여러가지 오퍼레이터를 통해 필터링하여 원하는 데이터들만 가지고 원하는 타이밍에 원하는 작업을 수행할 수 있도록 만들 수 있다. 사실 얼마나 이 필터링 작업을 자유롭게 하는지에따라 UniRx를 다루는 실력이 나누어질거라고 생각한다. (물론 나는 초짜) 이번에는 스트림을 필터하는 친구들 중에서도 가장 기본이되는 Where과 Select에 대해서 알아보도록하자. Where조건에 맞는 메세지만 필터링하는 오퍼레이터 무작정 구독한 스트림에서 오는 모든 메세지를 원하는 것은 아닐 것이다. 만약 0~9까지의 숫자들이 넘어 오는 스트림에서 5 이상의 숫..
UniRx 입문하기 - 기본적인 사용법
2017. 7. 1."아 이런 것이 있구나"하고 접했던 것은 오래되었지만 최근 들어 천천히 공부를 시작한 것이 UniRx이다. 일본인이 만든 Unity용 Reactive 프로그래밍 라이브러리 같은데 Unity는 .NET 버전도 낮고, .NET용 Rx는 무거운 감이 있어서 Unity에서 사용할 수 있게끔 만들었다고 한다. (일본에서 만들어서인지 검색하면 절반은 일본어 자료라 일본어를 읽지 못하는 입장에서는 대략 난감....) Reactive Programming(Rx)이란?이쪽 분야 프로그래밍은 많이 접해본 것이 아니지만, 초심자의 눈으로 보기에는 객체지향(OOP)이 모든 것을 "객체"로 보고 객체를 만들고 이용해서 프로그래밍했다면, Rx는 모든 것을 "스트림"으로 보고 스트림을 만들고 구독해서 데이터가 어떻게 변하고 어떤 ..
유니티 Monobehaviour 생명주기(Life cycle)
2017. 6. 28.저번 주에 소프트웨어 마에스트로에서 만난 사람들과 술자리를 가졌었다. 다들 오랜만에 보는 얼굴들이었는데 문득 1단계 때 옆자리였던 형을 보니 '유니티 생명주기'에 대해 알려주면서 트러뷸 슈팅을 도와주었던 기억이 났다. 생각도 다시 한번 정리해볼 겸 간단하게 포스팅해볼 생각이다. 유니티에서 생명주기?유니티에서 자신이 제작한 스크립트의 대부분은 'Monobehaviour'라는 친구를 상속받아 만들어진다. 스크립트를 만들면 자동으로 상속받는 형태이니 유니티의 기본 클래스 형태라고 봐도 좋을 것이다. 이 'Monobehaviour'가 Scene에서 살아가는 일정한 흐름이 있다. 엔진에서 자동으로 호출해주는 함수들인데 이 패턴의 흐름을 모아 '생명 주기(Life cycle)'라고 한다. 일단 그림으로 먼저 알아보..
Unity Android Bluetooth 플러그인 만드는 법
2017. 5. 31.이 포스팅 이후에 다시 플러그인을 개선시켜 결과물 갤러리에 포스팅 해두었습니다.여기를 통해 확인 가능합니다. DIY VR 컨트롤러를 만들던 도중에 아두이노에서 받은 여러 가지 센서값들 Unity/Unreal의 Android 프로젝트에서 받아 활용하기 위해서는 블루투스나 WIFI 모듈을 이용한 통신을 해야 한다. Unreal은 Unity와는 다르게 아직 생각보다 자료가 적어 난항을 겪다가 Unity로 먼저 예시를 만들기로 했다. (Unity로 하다보니 Unreal도 어떻게 접근해야 하는지 알겠다는 건 함정) 어쨌든, Unity Android 프로젝트에서 디바이스에 연결된 Bluetooth를 이용하기 위해서는 Plugin을 만드는 절차가 필요하다. 원래대로라면 JNI를 사용하여야 하지만, Unity가 이에 ..
유니티 Mono Editor대신 VS Code 사용하기
2016. 8. 4.Window에서 유니티(Unity)로 게임을 개발하는 분들은 신의 IDE라고 불리는 Visual Studio로 개발을 하게 되지만 Mac에서는 Visual Studio를 사용할 수 없다. 특히, Unity의 Mono Editor를 사용할 때면 정말 VS가 그리워지는데, 모노가 생각보다 좋은 개발 경험을 주지 않기 때문이다. 대략 단점을 정리해보자면 1. 느리다. 여러가지 기능이 재공되지만 기능에 비해 많이 느리다는 느낌을 준다.2. 잘 죽는다. 왜 크래시가 나는지 모르겠지만, 엄청 자주 죽는다. 이때 오토 세이브가 없었다면....3. UI 커스텀이 제한적이다. UI 테마 커스텀이 너무 제한적이다. (Xcode도 마찬가지...)4. 한글을 쓸 수 없다. 간단하게 주석을 달거나 유니코드 문자열을 간단하게 이..