์ „์ฒด ๊ธ€

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 ..