블렌더도 그렇지만, Godot도 Middle mouse button을 사용하도록 되어있다. 요즘 세상에 mmb(middle mouse button)을 메인으로 사용한다니… 아니, 쓸 수 있는데, 마우스들이 휠버튼을 엿같이 만들어놔서 쓰기 너무 불편하다. 그래서 안쓰는 방법 찾아봄. 메뉴바에서 Editor 메뉴를 연다. General 탭에 Editors>3D 항목을 찾는다. 항목에 보면, “Emulate 3Button Mouse”를 체크해줌. 이렇게하면, 바로 아래 항목에 설정된 Orbit Modifier, Pan Modifier, Zoom…
[글쓴이:] batmask
작업하던 프로젝트 Github에 올리기
1. github에서 repository 생성 github 사이트의 대시보드에서 new 버튼을 눌러 새로운 git repository를 생성한다. github의 새로운 프로젝트 생성화면은 다음과 같다. 입력란에 빨간줄을 쳐놨는데, repository이름을 입력하고, 프로젝트를 공개할지여부를 Public/Private로 선택한다. 그 아래로, README 파일 및 .gitignore, license파일들을 자동생성해주는 옵션이 있는데, 작업중인 소스코드를 올리려는 경우, 충돌이 있을 수 있으니 다 비워주고 추가하지 않는다. 마지막으로 Create repository 버튼을…
Android : Navigation
시기상으로 너무 늦게작성되는 포스팅인데… 지금 시점이라면, Jetpack Compose에서 Navigation의 사용을 설명해야 하나, 내가 아직 잘 모르고 XML도 혼용해서 사용중이라서 XML사용하는 Fragment들간의 Navigation을 설명하는 포스팅을 올린다. Principles of Navigation Navigation의 구현 이전에, 지켜져야 하는 디자인 원리를 짚고 넘어가자. 다음의 Principles of Navigation은 Navigation component를 쓰지 않더라도 지켜져야 한다. Navigation component를 사용하는 경우 지원되는 내용이기도 하다. 시작…
Kotlin : Flow Part.2 (Shared Flow, State Flow)
안드로이드에서 Flow로 읽어오는 데이터는 UI에 사용될 시, 주로 viewmodel에 저장하는 livedata형태로 변환해서 사용하게 된다. UI 업데이트는 observable한 데이터를 필요로 하기 때문이다. Flow는 cold stream이기 때문에 observable한 형태는 불가능하다. 옵저버 패턴은 다른말로 발행-구독(Publisher-Subscriber) 모델로 말하기도 하는데, 발행하는 쪽이 데이터가 바뀔 때마다 구독자들에게 브로드 캐스팅을 해야하기 때문에, hot stream 형태로 구현되어야 한다. 만약, livedata를 사용하지 않는다면? Flow만으로는…
Kotlin : Flow Part. 1
Reactive Stream규격의 Kotlin 구현. Asynchronouse cold stream. Asynchronouse 하게 동작하는게 코루틴과 찰떡으로 돌아간다. 데이터 스트림이라고 한다면, 한쪽(Producer)에서는 소스 데이터를 계속 넣어주고 이 데이터들이 일련의 파이프라인을 따라 처리된 후, 맞은편(Consumer)에서 데이터를 빼가는 모습을 생각할 수 있다. 주로 파일처리등의 대용량 데이터의 처리에 사용되지만, 이미 안드로이드에서 범용적으로 사용하고 있듯, 비동기적으로 데이터를 처리하는 reactive programming 형태에서는 데이터의 크기와 상관없이…