본문 바로가기

Reactive Extenstion(Rx) - 2 언제 Rx를 사용해야하는가 Rx의 장점 전통적인 방법으로 데스크탑 혹은 웹 기반 프로그램을 작성할 때, 가끔씩은 비동기 프로그래밍을 해야하는 경우가 있다. 데스크탑 어플리케이션은 입출력 또는 다른 활동적인 쓰레드를 블럭시킬 수 있는 UI 쓰레드를 가지고 있다. 실버라이트는 그 어떤 블럭도 허용하지 않으며 오직 비동기 프로그래밍만 가능하다. 그러나 요즘의 비동기 프로그래밍 모델의 사용자들은 수동으로 예외와 이벤트들의 취소를 관리해야만 한다. 이벤트를 더하고 빼기 위해, 사용자는 해독하기 어렵고 유지보수하기 힘든 코드를 작성해야만 한다. 게다가, 어플리케이션이 여러 곳의 데이터들과 상호작용한다면, 전통적인 방법으로는 각 데이터 스트림마다 이벤트 핸들러를 구현해야한다. 예를 들어, 사용자가 문자를 입력하자마자.. 더보기
uFrame, 프레임워크를 통한 유니티 게임개발 안녕하세요. 오랜만에 블로그에 글을 쓰는 것 같습니다. 현재 저희 회사에서 Unity를 이용한 새로운 형태의 스토리기반 2D 게임을 만들고 있습니다. 지금 80~90%정도 개발이 완료된 상황이고, 막바지 버그수정과 디테일작업에 신경을 쏟고 있습니다. 바쁘다는 핑계로 계속해서 블로그 포스팅을 미루고 있다가, 더이상은 안되겠다 싶어 시간을 내어 프로젝트에 대한 소개 및 정리하는 시간을 가져보았습니다. 현재 소속된 회사가 스타트업이고 개발인원(현재 2명)이 적다보니, 새로운 기술을 바로바로 사용해보고 적용할 수 있는 기회가 많았습니다. 그 중에서 이번 프로젝트에서는 유니티 에셋중 uFrame Game Framework(이하 uFrame)라는 프레임워크를 사용해서 개발을 하였습니다. 부수적인 기능을 담당하는 에.. 더보기
Canvas Group Canvas Group 캔버스 그룹(Canvas Group)은 UI요소들을 개별적으로 다루는 대신에, 한 곳에서 UI 그룹들의 특정 요소들을 컨트롤 할 수 있게 도와준다.캔버스 그룹의 요소들은 캔버스 그룹이 붙어있는 오브젝트뿐만 아니라 자식 모두에게도 영향을 미친다. 속성 속성 역할 Alpha 이 그룹에 포함된 UI 요소의 투명도를 나타낸다. 이 값은 0과 1사이에 있으며, 0은 완전한 투명, 1은 완전한 불투명을 나타낸다.UI요소들도 개별적으로 투명도값을 가지고 있기 때문에, 이 Alpha값과 Canvas Group의 Alpha값은 곱해져서 적용된다. Intractable 이 컴포넌트가 입력(예, 터치)을 받을 것인지를 나타낸다. 만약 false로 설정하면, 상호작용은 일어나지 않는다. Block Ra.. 더보기