본문 바로가기

전체 글

[UniRx Operator] Throttle ThrottleFirst(second = x) 이벤트가 발생하면 첫 이벤트만 통지하고, 이후 x초동안 발생하는 이벤트는 무시한다. x초 후에는 다시 첫 이벤트가 올때까지 대기한다. 더보기 using System; using System.Collections; using UnityEngine; using UniRx; public class Game : MonoBehaviour { IntReactiveProperty _property = new IntReactiveProperty(); IEnumerator Start() { _property .ThrottleFirst(TimeSpan.FromSeconds(1f)) .Subscribe(value => Debug.Log(value)); // 이벤트 통지: 0 (.. 더보기
[UniRx Operator] Buffer, Pairwise Buffer(count = x) 발생한 이벤트를 x개씩 모아서 통지한다. 더보기 using UnityEngine; using UniRx; public class Game : MonoBehaviour { IntReactiveProperty _property = new IntReactiveProperty(); void Start() { _property .Buffer(2) .Subscribe(values => Debug.Log($"({values[0]}, {values[1]})")); // X _property.Value = 1; // 이벤트 통지: (0, 1) _property.Value = 2; // X _property.Value = 3; // 이벤트 통지: (2, 3) } } Buffer(count .. 더보기
[UniRx Operator] Distinct, DistinctUntilChanged Distinct 이전에 발생한적 있는 이벤트는 무시하고, 처음 발생한 이벤트만 통지한다. 더보기 using UnityEngine; using UniRx; public class Game : MonoBehaviour { IntReactiveProperty _property = new IntReactiveProperty(); void Start() { _property .Distinct() .Subscribe(value => Debug.Log(value)); // 구독시 이벤트 통지: 0 _property.Value = 1; // 이벤트 통지: 1 _property.Value = 2; // 이벤트 통지: 2 _property.Value = 2; // X _property.Value = 1; // X _pro.. 더보기
[Node.js] Passport 로그인 구현 (express & vue) 개발환경: Windows10, VS Code 지난 포스팅에 이어서 진행한다. ( express & vue 연동 1 ) ( express & vue 연동 2 ) Backend 작업 1. backend 프로젝트를 열고, 터미널에서 express-session과 passport, passport-local을 설치한다. > npm i express-session passport passport-local - passport는 express-session을 사용하므로 express-session도 설치해야한다. - 유저의 아이디와 비밀번호를 통한 로그인을 구현할 것이므로 passport-local을 설치한다. (그외에 strategy들을 추가 설치하면 구글, 페이스북, 네이버, 카카오 등을 이용한 로그인도 구현할.. 더보기
[Node.js] express & vue 연동 2 개발환경: Windows10, VS Code 지난 포스팅에 이어서 진행한다. ( express & vue 연동 1 ) fontend 작업 1. frontend 프로젝트를 열고, config/index.js 파일을 열어서 proxyTable을 설정한다. proxyTable: { '/api': { target: 'http://localhost:3000/api', changeOrigin: true, pathRewrite: { '^/api': '' } } } http 통신을 간편하게 하기 위한 것으로 프론트엔드에서 '/api' 주소로 요청 발생시 'http://localhost:3000/api' 주소로 요청을 보낸다. 이 설정을 하지 않으면 http 요청시마다 'http://localhost:3000/api' .. 더보기
[Node.js] express & vue 연동 1 개발환경: Windows 10, VS Code Vue 설치 1. 프로젝트 폴더를 생성하고, 해당 폴더로 이동한다. 2. vue-cli 를 전역 설치한다. > npm i vue-cli -g 3. vue 프로젝트('frontend')를 생성한다. (with webpack) > vue init webpack frontend - 각 내용은 그냥 엔터키를 눌러 기본값을 사용하거나 필요에 따라 수정한다. - ESLint, unit test, e2e test는 필요에 따라 사용한다. 4. frontend 폴더로 이동하여 프로젝트를 실행한다. > cd frontend > npm run dev 5. localhost:8080으로 접속하여 vue 화면을 확인한다. 6. 커맨드창에서 Ctrl+C 를 두번 눌러 서버를 종료한.. 더보기
블로그에 소스코드 넣기 (Github Gist) 깃허브의 Gist를 사용하여 블로그에 소스코드를 넣을 것이다. Gist는 "Instantly share code, notes, and snippets" 라고 하여, 아이디어나 메모, 코드 조각 등을 남겨서 저장하고 공유하기에 유용하다. 1. 깃허브에 로그인한다. http://github.com Build software better, together GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 2. 깃허브에서 (+) 버튼을 클릭하고 New gist 를 선택한다. 3. 맨 위에 설.. 더보기
[Defold 튜토리얼] 4-4. War Battles 탱크 오브젝트 만들기 (1) "sprites.atlas" 파일을 열고 "tank-down" 애니메이션 그룹을 만들어서 tank/down/1~2.png 이미지를 추가한다. (2) main 폴더 안에 블루프린트(blueprint)로 사용될 "tank.go" 게임오브젝트를 생성하고, Sprite 컴포넌트를 추가한뒤 tank-down 애니메이션을 설정한다. (3) "main.collection"을 열어서 "tank.go" 게임 오브젝트 파일을 추가하고 Z position을 1로 만들어준 뒤에 화면상에 위치를 잡는다. (4) tank 게임오브젝트를 복사 붙여넣기로 2개 더 추가하고, 위치를 잡는다. 충돌 오브젝트(Collision Object) 추가하기 게임을 실행해서 로켓을 쏴보면 로켓이 탱크를 뚫고 지나가는 .. 더보기