My dev Note๐
unity ์ํ์ข์ฐ ์ฝ๋ 2๊ฐ์ง Input.GetKey vs Input.GetAxis ๊ทธ๋ฆฌ๊ณ Translate() ํจ์์ ํ์ฉ
//๋ ํธ๋ก๋๋์ ํฝ์ ๊ฒ์์์ ๋ง์ด ๋ณด์ด๋ ๋ฌด๋น์ค๋ฝ๋ค using System.Collections; using System.Collections.Generic; using UnityEngine; public class MOVE : MonoBehaviour { Transform tr; void Update() { tr = GetComponent(); if (Input.GetKeyDown(KeyCode.UpArrow)) { tr.position = new Vector3(tr.position.x, tr.position.y + 1, tr.position.z); } if (Input.GetKeyDown(KeyCode.DownArrow)) { tr.position = new Vector3(tr.position.x, ..
์ ๋ํฐ Quaternion
Quaternion & Quaternion.Euler transform.rotation์ Quaternionํํ์ธ (x, y, z, w)์ ํํ๋ก ํ์๋๋ค. Quaternion.Euler์ Vector3 ๊ฐ์ ๋ฃ์ผ๋ฉด Quaternion ๊ฐ์ผ๋ก ๋ณํ๋๋ค. transfomr.rotation = Quaternion.Euler(new Vector3(30,50,20)); transform.rotation = Quaternion.Euler(30,50,20); // ์์ ๋์ผ ๊ฐ๋ ๋ํ๊ธฐ 1. Vector3 ๊ฐ์ผ๋ก ๋ณํ ํ ๋ํ ๋ค์ Quaternion์ผ๋ก ๋ค์ ๋ณํ. Quaternion originalRot = transform.rotation; Vector3 originalRotVec3 = originalRot...
[Win api] CreateWindow
๋ณธ๋ฌธ์์๋ ์๋ ํ์ด๋ผ์ดํธ ๋ถ๋ถ์ ์ธ๋ถ์ ์ผ๋ก ๋ค๋ฃฐ ๊ฒ์ด๋ค. BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { hInst = hInstance; HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); if (!hWnd) //์๋์ฐ์ฐฝ์ ์์ฑ ๋ชปํ์ ๊ฒฝ์ฐ๋ฅผ ์ํ ์์ธ์ฒ๋ฆฌ๋ฌธ์ด๋ค. { return FALSE; } CreateWindow๋ฅผ ํ๋ฉด ๋ฌด์กฐ๊ฑด ์๋์ฐ ํธ๋ค์ด ๋ง๋ค์ด์ง๋ค. ์ค์ ์๋์ฐ์ฐฝ์ ๋ง๋ค์ด๋ธ๋ค. ์์ฑํ ์๋์ฐ์ ํธ๋ค์ ๋ฐํํด์ค ์ค์ ์ฝ๋ ; HWND hW..
[Win api] InvalidateRect vs updatewindow
1. InvalidateRect ํ๋ฉด์ ๋ฌดํจํํด์ฃผ์ด WM_PAINT ์ ํธ๋ฅผ ๋ณด๋ด๋๋ก ํ๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ invalidateRect๋ WM_PAINT๋ฅผ ์ง์ ํธ์ถํ์ง ์๋๋ค. InvalidateRect ํจ์๋ ๋ฌดํจํ ์์ญ๋ง์ ์ง์ ํด ๋๊ณ ์ด ์์ญ์ ์ฒ๋ฆฌํด ๋ฌ๋ผ๋ ์ ํธ๋ง์ ์ค์ ํ๊ฒ ๋๋ค. ์ด๊ฒ์ WM_PAINT ๋ฉ์ธ์ง์ Flag๋ฅผ ์ค์ ํ๋ ๊ฒ์ด๋ค. ์์คํ ์ด ๋ฉ์์ง ํ์ ์๋ ๋ค๋ฅธ ๋ฉ์ธ์ง๋ฅผ ์ฒ๋ฆฌํด๋์ ๋ค ๋ฌดํจํ ์์ญ์ ์บ์นํ๋ฉด WM_PAINT๋ฅผ ํธ์ถํ๋ค. (๊ฐฑ์ ์์ ์ง์ฐ ์์) 2. updatewindow ๋ฉ์์ง ํ๋ฅผ ๊ฑฐ์น์ง ์๊ณ WM_PAINT๋ฅผ ์ง์ ํธ์ถํ๋ค. (๊ฐฑ์ ์์ ์ง์ฐ ์์)
[Win api] DC์ WM_PAINT, ๊ทธ๋ฆฌ๊ณ BeginPaint() vs GetDC() ๊ดํ ๋น๊ต
1. DC๋, Device Context - ๊ทธ๋ํฝ ์ถ๋ ฅ์ ํ์ํ ๋ชจ๋ ์ต์ ์ ๋ชจ์๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด๋ก, ์๋์ฐ์ฆ์์๋ ์ถ๋ ฅ์ฅ์น์ ๋ฌด์์ธ๊ฐ๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ ๋ฐ๋์ DC๊ฐ ํ์ํ๋ค. ๋ณดํต DCํธ๋ค์ ์ป์ ํ ์ถ๋ ฅํ๋ค.(DCํธ๋ค์ ์ถ๋ ฅ๋์์ ๋ํ๋ด๋ ๊ตฌ๋ถ ๋ฒํธ๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค.) ๋ชจ๋ ๊ทธ๋ํฝ ํจ์๋ค์ ์ฒซ๋ฒ์งธ ์ธ์๋ก DCํธ๋ค์ ํ์๋ก ํ๋ค. - GDI์ ์ํด ๊ด๋ฆฌ๋๋ค. (GDI๋ ๊ทธ๋ํฝ ํจ์๋ค์ ๊ตฌํํ๋ ์ผ์ ๋ด๋นํ๋ ์๋์ฐ์ฆ์ ๊ตฌ์ฑ์์์ด๋ค. ๊ทธ๋ํฝ ์ถ๋ ฅ์ ์ํ์ฌ ์์ฉํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ ์ ์๋ ํจ์์ ๊ทธ์ ๊ด๋ จ๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค.) - ์ฆ, ํฐํธ/์์/๊ตต๊ธฐ/์ถ๋ ฅ๋ฐฉ๋ฒ๋ฑ์ด ๋ชจ๋ ์ถ๋ ฅ์ ํ์ํ ์ ๋ณด์ด๋ฏ๋ก ๊ทธ๋ฌํ ์ ๋ณด๋ค์ด DC์ ๋ค ๋ด๊ฒจ ์๋ค๊ณ ๋ณผ ์ ์๋ค. ๊ด๋ จ ์ฝ๋: hdc = GetDC(hWnd); //!..
#include <conio.h> _getch() ์ค๋ช ๊ณผ ์ฝ๋ ์์
#include ์ฝ์ input output ํค๋ํ์ผ์ด๋ค. ์ฝ์์ฐฝ์์ ์ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํด์ฃผ๋ ํค๋ํ์ผ์ด๋ค. _getch() _getch() ํจ์๋ ๋ฌธ์ 1๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ๋ ํจ์์ด๋ค. Enter๋ฅผ ์น์ง ์๋๋ผ๋ ๋ฌธ์๋ฅผ ๋๋ฅด๋ ์๊ฐ ๋ฐ๋ก ๊ทธ ๋ฌธ์๋ฅผ ๋ฐํํ๊ณ ์ข ๋ฃ๋๋ค. ๋ค์ ๋งํด, cin ์ฒ๋ผ ์ ๋ ฅํ ๋ค์ ๊ตณ์ด ์ํฐ๋ฅผ ์ถ๊ฐํ ํ์์์ด ์ ๋ ฅ ํ์ธํด์ค๋ค. ํค๋ณด๋์์ q๋ฅผ ๋๋ ์ ๋ ๊ฒ์ ์ข ๋ฃํ๊ณ ์ถ์ ๋ ์์ฑํ๋ ์ฝ๋ #include #include #include using namespace std; int main(){ while(true){ char key = _getch(); if(key=='q'|| key=='Q') break; } cout
[์ ๋ํฐ] get set ํ๋กํผํฐ Property(์์ฑ)
c#์์๋ property(์์ฑ)์ด๋ผ๋ ๊ฒ์ด ์๋ค. c++์์๋ ๋ฐ์ดํฐ์ ์๋์ ์ํด getter setter์ ์ฐ๋๋ฐ c#์ get set์ผ๋ก ์ฐ๊ณ ์ด๋ฐ ๋ฐฉ์์ property๋ผ๊ณ ํ๋ค. ํด๋์ค์์ ์ ๋ณด ์๋์ ์ํ์ฌ ํน์ ๋ณ์๋ฅผ private ์ ์ธํ๋ฉด ํด๋์ค ์ธ๋ถ์์๋ access ๋ถ๊ฐ๋ฅํ๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์, ์ธ๋ถ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์์ ๋ํ ์ ๊ทผ์ด ํ์ํ ๊ฒฝ์ฐ(๋ค๋ฅธ ํด๋์ค๊ฐ ํด๋น ๋ณ์๊ฐ์ ๋ฐ๊ฟ์ผ ํ ๊ฒฝ์ฐ) get,set์ ํตํด ์ ๊ทผํ ์ ์๊ฒ ๊ตฌํํด์ผ ํ๋ค. ํ๋กํผํฐ ์ฌ์ฉ๋ฒ private๋ก ์ ์ธํ ๋ณ์๋ฅผ ์ป๊ฑฐ๋ ์ธํ ํ๊ธฐ ์ํด get, set ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค. get ์ ๊ทผ์์ ๋ํ ์ฝ๋ ๋ธ๋ก์ ์์ฑ์ ์ฝ์ ๋ ์คํ๋๊ณ , set ์ ๊ทผ์์ ๋ํ ์ฝ๋ ๋ธ๋ก์ ์์ฑ์ ์ ๊ฐ์ ํ ๋นํ ๋ ์คํ๋๋ค. set ..