ํ๋กํผํฐ : ์์ฑ
๋ธ๋ฆฌ๊ฒ์ดํธ : ๋๋ฆฌ์
ํ๋ผ๋ฏธํฐ : ๋งค๊ฐ๋ณ์
์ ๋ค๋ฆญ : ์ผ๋ฐํ
ํ๋ : ๋ณ์
๋ฉ์๋ : ํจ์
์ ๋ํฐ ์ฝ๋ฉ ๊ท์น๋ณ์๋ช ์์๋ณผ ์ ์๊ฒ ์ง๊ธฐ
ํด๋์ค ์ด๋ฆ์ ๋๋ฌธ์ ์์
์คํฌ๋ฆฝํธ ์ด๋ฆ๋ ๋๋ฌธ์ ์์
๋ฉ์๋๋ ๋๋ฌธ์ ์์
ํด๋์ค ๋ด public, protected ๋ณ์, ํ๋กํผํฐ๋ ์นด๋ฉํ์
ํด๋์ค ๋ด private ๋ณ์๋ _์ธ๋๋ฐ ์์ ์นด๋ฉํ์
๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์นด๋ฉํ์
๋ธ๋ฆฌ๊ฒ์ดํธ ์ด๋ฆ ๋ค์ Callback ๋ถ์ด๊ธฐ
์ด๋ฒคํธ๋ ์ก์ ์์ On ๋ถ์ด๊ธฐ(ex)OnDeath)
object-Component-Behaviour-MonoBehaviour
object : c# ๊ธฐ๋ณธ ์ค๋ธ์ ํธ
Component : ์ปดํฌ๋ํธ, GameObject์ ๋ถ์ ์ ์์. ๋ถ์ด์๋ GameObject์ ์ ๊ทผ ๋ฐ GameObject ์ต์ ๋ค ์ฌ์ฉ๊ฐ๋ฅ
Behaviour : able/disable ๋ ์ ์๋ ์ปดํฌ๋ํธ
MonoBehaviour : ์ปดํฌ๋ํธ๋ก์จ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ํ๋ ํด๋์ค. Awake(), Start(), Update() ๋ฑ์ด ์๋ํจ
Awake() vs Start()Awake() : ์คํฌ๋ฆฝํธ ์ธ์คํด์ค๊ฐ ๋ก๋๋ ๋ ๋ฐ๋, ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ๊ฐ disabled์ฌ๋ ๋ฐ๋, ๊ฒ์์ค๋ธ์ ํธ๊ฐ inactive๋ฉด SetActive()๋ ๋ ๋ฐ๋. ์ฌ์ ์๋ ๋ชจ๋ ๊ฒ์์ค๋ธ์ ํธ๊ฐ ์ด๊ธฐํ ๋ ๋ค์ ๋ฐ๋
Start() : ์คํฌ๋ฆฝํธ๊ฐ enabled๋ ํ๋ ์์ ๋ฐ๋, Update()๊ฐ ๋๊ธฐ ์ง์ ์ ๋ฐ๋
public ํ๋ vs ์๋ ๊ตฌํ ํ๋กํผํฐ๋ฆฌํ๋ ์ ์์ ๋ค๋ฅด๊ฒ ๊ตฌ๋
์๋ ๊ตฌํ ํ๋กํผํฐ๋ ์คํ๋ ๋ ๋ด๋ถ์ ์ผ๋ก get๋ฉ์๋ set๋ฉ์๋ ๋ค ๋ง๋ค๊ธฐ ๋๋ฌธ์ public์ ๋นํด ๋๋ฆผ
ํ๋ vs ํ๋กํผํฐ
ํ๋๋ ์์ ์ ์ง์ ์ฐธ์กฐํ๋ ref๋ out ๋งค๊ฐ๋ณ์์ ๋์์ด ๋ ์ ์์ง๋ง ํ๋กํผํฐ๋ ๋ถ๊ฐ๋ฅ
ํ๋กํผํฐ๋ virtual๋ก ์์ํ์ฌ ์์๋ ํด๋์ค๊ฐ ์ฌ์ ์ ๊ฐ๋ฅ, ํ๋๋ ๋ถ๊ฐ๋ฅ
์ธํฐํ์ด์ค์์ ํ๋๋ ์ ์ํ ์ ์์ง๋ง ํ๋กํผํฐ๋ ์ ์ ๊ฐ๋ฅ
๊ณต๋ณ์ฑ๊ณผ ๋ฐ๊ณต๋ณ์ฑํ๋ณํ์ด ๋ง์ด ์ฐ์ด๊ฒ ๋๋ฉด์ ์ฌ๋ฌ ์ํฉ์์ ์ด๋ฐ ํ๋ณํ์ ํ์ฉํ๊ณ ์ ๋ฐ ํ๋ณํ์ ๋ง๊ณ ํด์ผํ ๋
์ด๋ฅผ ๊ณต๋ณ์ฑ๊ณผ ๋ฐ๊ณต๋ณ์ฑ์ด๋ผ๋ ํค์๋๋ก ์ ๋ฆฌ, ๋ถ๋ฅํจ
์ด๋ฅผ ์ฝ๋์์ in๊ณผ out ์ ๋ค๋ฆญ ํ์ ์๋ก ์์ํจ
๊ณต๋ณ์ฑ : out, ์์ ๊ณผ ์์์ผ๋ก๋ง ํ๋ณํ ๊ฐ๋ฅ, ์ถ๋ ฅ(๋ฐํํ, get ๋ฑ)์ ์ฌ์ฉ
๋ฐ๊ณต๋ณ์ฑ : in, ์์ ๊ณผ ๋ถ๋ชจ๋ก๋ง ํ๋ณํ ๊ฐ๋ฅ, ์ ๋ ฅ(๋งค๊ฐ๋ณ์, set ๋ฑ)์ ์ฌ์ฉ
๋งค๊ฐ๋ณ์ ํ์ ์ ref vs outref๋ ์ด์ ์ ํด๋น ๋ณ์๊ฐ ์ด๊ธฐํ ๋์์ด์ผ ํ์ง๋ง
out์ ์ด์ ๊ฐ์ด ์๋ ์๋ ๋ฌด์ํ๊ณ ์๊ธฐ๊ฐ ์ด๊ธฐํ์ํด
staticstatic ๋ถ์ ๋ณ์/ํจ์๋ ๊ณง๋ฐ๋ก ํด๋์ค๋ช .static๋ช ํด์ ์ฌ์ฉ๊ฐ๋ฅ
static ๋ณ์๋ ๊ทธ๊ฒ์ด ๋ค์ด์๋ ํด๋์ค๊ฐ ์ฒ์ ์ฌ์ฉ๋ ๋ ๋ง๋ค์ด์ง๊ณ ,
์ดํ ๋์ผ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ฐ๋ก ๋ง๋ค์ด์ ธ๋ ํด๋น static ๋ณ์๋ ๊ฐ ์ธ์คํด์ค๋ง๋ค ์๋๊ฒ ์๋๋ผ ํญ์ ๋์ผํ ๊ฑธ ์ฌ์ฉ
static ํจ์๋ ํด๋์ค์ ์ผ๋ฐ ๋ณ์ ์ฌ์ฉ ๋ชปํ๊ณ static ๋ณ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
static ํด๋์ค๋ ์ธ์คํด์คํ x
? ๊ด๋ จ ์ฐ์ฐ์๋ค?: ์ฐ์ฐ์ : ๊ฐ๋จํ if๋ฌธ ๊ฐ๊ฒฐํ, (์)?(x):(y) ์ฒ๋ผ ์ฐ๋ฉด if(์){x}else{y}์ ๊ฐ๊ฒ ๋จ
?., ?[] ์ฐ์ฐ์ : null ์กฐ๊ฑด๋ถ ์ฐ์ฐ์ : ์์ ์ค๋ ๊ฐ์ด null์ด๋ฉด null ๋ฐํ, null์ด ์๋๋ฉด ๋ฉค๋ฒ/์์ ๋ฐํ
?? ์ฐ์ฐ์ : null ๋ณํฉ ์ฐ์ฐ์ : a??b ์ผ ๋ a๊ฐ null์ด ์๋๋ฉด a ๋ฐํ, a๊ฐ null์ด๋ฉด b๊ฐ null์ธ์ง ํ์ธํ๊ณ ๋ฐํ
??= ์ฐ์ฐ์ : ?? ์ฐ์ฐ์์ ์ฐ์ฅ์ ์ผ๋กย a๊ฐ null์ผ ์ b์ ๊ฐ์ a์ ๋์
Mathf ํด๋์ค ์ ์ฉํ๊ฒ๋คfloat Clamp(float value, float min, float max) ํน์ (int value, int min, int max) : value๊ฐ์ min๊ณผ max ์ฌ์ด๋ก๋ง ํ์ ํจ
float Lerp(float a, float b, float t) : ์ ํ ๋ณด๊ฐ๋ฒ: a์ b๋ฅผ 0๊ณผ 1์ ์์น๋ก ๋๊ณ t(0<=t<=1)์ ํด๋นํ๋ ๊ฐ์ ์ฐพ์์ค
bool Approximately(float a, float b) : ๋ถ๋์์์ ํ์์ ์ค์ฐจ๋ฅผ ๋ฌด์ํ๊ณ a์ b๊ฐ ๊ฐ์ผ๋ฉด true๋ฅผ ๋ฐํ
์ด์ง ํ์ผ ์ ์ถ๋ ฅFile ํด๋์ค์ ์ ์ฉํ static ๋ฉ์๋๋ค์ด ๋ง์ผ๋ฏ๋ก File.method()์์ผ๋ก ์ ์ฉํ๊ฒ ์ฐ์
FileStream์ด ํ์ํจ. new FileStream(string path, FileMode fileMode)์ผ๋ก ์ด์. FileMode๋ enumํ
์ ๋ ฅ์ BinaryWriter, ์ถ๋ ฅ์ BinaryReader๊ฐ ํ์ํจ. ๋งค๊ฐ๋ณ์๋ก ํ์ผ์คํธ๋ฆผ์ ๋ฐ๊ณ , ๋์ ํ์ผ์คํธ๋ฆผ์ writer์ผ๋ FileMode.Create, reader์ผ๋ FileMode.Open์ด์ด์ผ ํจ
์ด์ ๊ทธ๋ฅ writer.Write(context) ์์ผ๋ก ์ ์ฅํ๋ฉด ๋๋ค. ๋ชจ๋ ํ์์ ๋ํด ์ค๋ฒ๋ก๋ฉ๋์ด์์ผ๋ฏ๋ก ใฑใ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ฉ์ผ๋ก ํ ๊ฑฐ๋คํ๊ณ stream.Close() ์์ง๋ง๊ธฐ -> Close()ํ ๊ฑฐ์์ด using๋ฌธ์ ์ฐ๋ฉด ๋ธ๋ก ์์์๋ง ์ฐ๊ณ ๋ฐ๋ก ํด์ ํ๋ค
์์ฃผ ์ธ๋งํ๋ฐ ์์ฃผ ๊น๋จน๋ ๊ฒ๋ค ๋ฐ๋ก๋ฐ๋ก ๋ณด๋ ค๊ณ ๋ฉ๋ชจํด๋์
๋ ์ ๋ณด๊ธ๋ก ๋๊ฑฐํด๋ ๊ด์ฐฎ๊ฒ ์ต๋๊น
ใ ?ใน
ํด๋ ๋์ฃ ?
๋ง๋๋ฃจ
? ์ฐ์ฐ์ ใ ใ ใ ๋๊ฒ ์ ์ฉํ๋ค
์ค ์ข๋ค
์ฐ์ฐ์ ์ ์ฉํ๋ ธ ์ ๊ฑฐ ๋ชจ๋ฅด๋์ฒด ์ ๋ฌด ๋ค์ด๊ฐ์๋ ์ ์์ด ์ ๊ฑฐ์ฐ๋ฉด ์ด์ง๋ฌ์ด๋ฐ