ํ ๋จ์๋ก ๊ฐ๋ฐํ๋ค ๋ณด๋ฉด ํด๋์ค๋ช , ๋ณ์๋ช ๋ฑ๋ฑ ์ฝ๋์ ์ฌ์ฉ๋๋ ์ด๋ฆ์ ์ด๋ป๊ฒ ์ง๋์ง๊ฐ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ ์ ์ง์์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋๋ฌธ์ ํด๋์ค๋ ๋ฉ์๋, ๋ณ์ ๋ฑ์ ์ฌ์ฉ๋๋ ์ด๋ฆ์ ๋ช ๋ช ๋ฒ์ ๊ท์น์ผ๋ก ๋ง๋ค์ด ๊ด๋ฆฌํ ํ์๊ฐ ์๊ธฐ๋๋ฐ, ์ด๋ฅผ ๋ค์ด๋ฐ ์ปจ๋ฒค์ , ํน์ ๋ค์ด๋ฐ ๋ฃฐ์ด๋ผ๊ณ ํ๋ค.
๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ํ ๋จ์์ ๊ท์น์ด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ํ๋ง๋ค ํฌ๊ณ ์์ ๋ถ๋ถ์ด ๋ค๋ฅธ๋ฐ, ํ์์ ์ฑํํ ์ปจ๋ฒค์ ์ด ๋ณธ์ธ์ด ์จ์จ ๋ฐฉ์๊ณผ ๋ค๋ฅด๋๋ผ๋ ํ์ ์ ์ํด ์ปจ๋ฒค์ ์ ๋ฐ๋ฅด๋๋ก ํ์.
๋ณธ์ธ์ด ๊ณต๋ถํ๋ ์ ์ฅ์ด๊ณ ๋ณธ์ธ๋ง์ ์ปจ๋ฒค์ ์ด ์๋ ์ํฉ์ด๋ผ๋ฉด ์ ๋ํฐ์ C#์์ ์ ์ํ๋ ํ์ค ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ตํ๋๋ ๊ฒ์ด ์ข๋ค. ํ์ค์ธ ๋งํผ ๋๋ถ๋ถ ์ด๋ฅผ ๊ณจ์๋ก ์ ์ ํ ๋ณํ์ํจ ์ปจ๋ฒค์ ์ ์ฌ์ฉํ๋ฉฐ, ์ ๋ํฐ๋ C#์์ ์ ๊ณตํ๋ ๊ณต์ ๋ฌธ์๋ ์์ค ์ฝ๋๋ ๊ฑฐ์ ๋๋ถ๋ถ ์๊ธฐ๋ค๊ฐ ์ ์ํ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ๋ฐ๋ฅด๊ณ ์๋ค.
# case์ ์ข ๋ฅ
1. PascalCase(ํ์ค์นผ ์ผ์ด์ค) - ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก, ๊ทธ ์ธ์๋ ์๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ๋ฒ. UpperCamelCase๋ผ๊ณ ๋ ํจ.
2. camelCase(์นด๋ฉ ์ผ์ด์ค) - ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋, ๋ ๋ฒ์งธ ๋จ์ด๋ถํฐ๋ ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ๋ฒ. ํ์ค์นผ ์ผ์ด์ค(UpperCamelCase)์ ๊ตฌ๋ถํ ๋๋ lowerCamelCase๋ก ์นญํ๊ธฐ๋ ํ๋ค.
3. snake_case(์ค๋ค์ดํฌ ์ผ์ด์ค) - ๊ฐ ๋จ์ด ์ฌ์ด๋ฅผ _(์ธ๋๋ฐ)๋ก ๊ตฌ๋ถํ์ฌ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ. ๋์๋ฌธ์๋ฅผ ์์ด ์ฐ๋ ์ ํ๊ธฐ๋ฒ๋ค๊ณผ ๋ค๋ฅด๊ฒ ๋ชจ๋ ์๋ฌธ์๋ง์ ์ฌ์ฉํ๋ ์ง ํน์ ๋ชจ๋ ๋๋ฌธ์๋ง์ ์ฌ์ฉํ๋ ๊ฒ ์ฃผ๋ ํ๊ธฐ๋ฒ. ex) SNAKE_CASE, snake_case
4. kebab-case(์ผ๋ฐฅ ์ผ์ด์ค) - ๊ฐ ๋จ์ด ์ฌ์ด๋ฅผ -(ํ์ดํ)์ผ๋ก ๊ตฌ๋ถํ์ฌ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ.
5. Hungarian Notation(ํ๊ฐ๋ฆฌ์ ํ๊ธฐ๋ฒ) - ๋ณ์๋ช ์์ ํ์ ๋ฑ ๋ณ์์ ์ฉ๋๋ ์๋ฃํ ๋ฑ์ ์๋ฌธ์ ์ ๋์ฌ๋ก ๋ถ์ด๋ ๋ฐฉ๋ฒ. ์ฅ์ ์ ๋นํด ๊ฐ๋ ์ฑ ์ ํด ๋ฑ ๋จ์ ์ด ๋ถ๊ฐ๋๋ฉด์ ์ต๊ทผ์๋ ๋ฐฐ์ฒ๋๋ ์ถ์ธ์ง๋ง ์ฌ์ ํ ํ์ ๋ฐ๋ผ ์ฑํํ๊ธฐ๋ ํจ. ex) strName, iCount
# ์ ๋ํฐ์ ํ์ค ๋ค์ด๋ฐ ์ปจ๋ฒค์
1. ํด๋์ค๋ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , Pascal Case๋ก ํ๊ธฐํ๋ค.
ex) PlayerController
2. ์ธํฐํ์ด์ค๋ Pascal Case๋ก ํ๊ธฐํ๊ณ , I ์ ๋์ฌ๋ฅผ ๋ถ์ธ๋ค.
ex) IEnumerator
3. ๋ฉ์๋๋ ๋์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , Pascal Case๋ก ํ๊ธฐํ๋ค.
ex) DeleteObject, GetHp
4. ๋ณ์๋ช ์๋ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , ์ฝ์ด ์ฌ์ฉ์ ์ง์ํ๋ฉฐ ์๋ฏธ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ค.
์๋ฏธ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ๋ ๋ง์ n, i ๋ฑ์ ๋ช ๋ช ์ ์ง์ํ๊ณ ๋๊ฐ ๋ด๋ ์ด ๋ณ์์ ์ฌ์ฉ ์๋์ ์ฉ๋๋ฅผ ์ ์ ์๊ฒ ๋ช ๋ช ํ๋ผ๋ ๋ป์ด๋ค.
๋ค๋ง for๋ฌธ์์ ๋จ์ ๋ฐ๋ณต๋ง์ ์ํด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ผ๋ ์ง ์ผ๋ถ ์์ธ๋ ์๋๋ฐ, for๋ฌธ์์๋ ๋ฐฐ์ด ์ธ๋ฑ์ค์ ์ ๊ทผํ ๋๋ index๋ก ๋ช ๋ช ํ๋ ๋ฑ ์ ์๋ฏธํ ๋ณ์๋ช ์ ์ฌ์ฉํ๋ ๊ฒ ์ข๋ค.
4.1. public ๋ฉค๋ฒ ๋ณ์์ธ ๊ฒฝ์ฐ Pascal Case๋ก ํ๊ธฐํ๊ณ , ๋๋๋ก ํ๋กํผํฐ(์์ฑ)๋ฅผ ์ฌ์ฉํ๋ค.
ex) WalkSpeed
c#์์ ํ๋กํผํฐ๋ ํน์ field(๊ฐ๋ฐ์๊ฐ ๋ฐ๋ก ์์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก backing field๊ฐ ์์ฑ๋๋ค)์ ๋ํ get set ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์์ด๊ธฐ ๋๋ฌธ์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ง์ ํตํ๋ ๊ฒ์ ๋นํด ํผํฌ๋จผ์ค์์ ์ฐจ์ด๊ฐ ์์ ์๋ ์๋ค.
๊ทธ๋ฌ๋ ์๋์ฑ์ ๋ณด์ฅํ๋ ๋ฑ ๋จ์ ๊ณต์ฉ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๊ฐ์ฒด์งํฅ์ ์ด๋ค.
4.2. private ๋ฉค๋ฒ ๋ณ์์ธ ๊ฒฝ์ฐ camel Case๋ก ํ๊ธฐํ๊ณ , _(์ธ๋๋ฐ)๋ m_ ๋ฑ์ ์ ๋์ฌ๋ฅผ ๋ถ์ธ๋ค.
ex) _strength
์ ๋์ฌ๋ฅผ ๋ถ์ด๋ ์ด์ ๋ ์ง์ญ ๋ณ์์์ ํผ๋์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ชฉ์ ์ด๋ค.
์๋ฅผ ๋ค์ด ๋ฉ์๋ ๋ด์์ strength๋ผ๋ ์ด๋ฆ์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธํด ์ฌ์ฉํด์ผ ํ ์ผ์ด ์๋๋ฐ ๋ฉค๋ฒ ๋ณ์ ์ค์๋ strength๋ผ๋ ์ด๋ฆ์ ๋ณ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ ๋, ํด๋น ๋ฉ์๋ ๋ด์์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด this ํค์๋๋ฅผ ์ด์ฉํด ๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ํธ์ถํ๋ ๊ฒ์์ ๋ช ํํ๊ฒ ํด์ค์ผ ํ๊ณ (this.strength), ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํ ๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ธ์ง ์ง์ญ ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ธ์ง ํท๊ฐ๋ฆด ์ ์๋ค.(ide์์ ํ์ด๋ผ์ดํ ์ ํด์ค๋ค๊ณ ๋ ํ์ง๋ง)
์ด๋ ๋ฉค๋ฒ ๋ณ์์ ์ ๋์ฌ๋ฅผ ๋ถ์ฌ _strength๋ก ๋ช ๋ช ํ๋ค๋ฉด ๋ฉค๋ฒ ๋ณ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ ๊ฒ์ ๋ช ํํ ์ ์ ์๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ณ ๋ฒ๊ฑฐ๋กญ๊ฒ this ํค์๋๋ฅผ ์ด์ฉํ์ง ์์๋ ๋๋ค.
์ ๋์ฌ๋ _ ๋๋ m_์ดย ๊ถ์ฅ๋๋๋ฐ, ์ ๋ํฐ๋ฟ๋ง ์๋๋ผ c# ์ ๋ฐ์ ์ผ๋ก m_๋ณด๋ค๋ _๋ง ๋ถ์ด๋ ๊ฒ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ์๊ณ ์์
4.3. ์ง์ญ ๋ณ์๋ camel Case๋ก ํ๊ธฐํ๋ค.
ex) rotateSpeed
4.4. bool ํ์ ๋ณ์๋ is, can, has ๋ฑ์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํด ํ๊ธฐํ๋ค.
ex) isRunning, canWork, hasChildren
bool ํ์ ๋ณ์๋ ๊ฑฐ์ ๋๋ถ๋ถ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ถ๊ธฐํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋๋ฐ, ์ด๋ ์์ ๊ฐ์ด ๋ช ๋ช ํ๋ฉด ์ฉ๋๋ฅผ ๋ช ํํ๊ฒ ํด์ฃผ๊ณ ๊ฐ๋ ์ฑ์ ํฅ์์ํจ๋ค.
์๋ฅผ ๋ค์ด ๋์์ด ์ฃฝ์๋์ง ์๋์ง๋ฅผ ํ์ธํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ์.
1) if (target.DeadFlag)
2) if (target.IsDead)
๋์ถฉ ๋ด๋ 1) ๋ณด๋จ 2)๊ฐ ๋ ๋ช ํํ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์๊ณ ์ฉ๋์ ๋ถํฉํ๋ ๋ช ๋ช ๋ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
5. enum์ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , Pascal Case๋ก ํ๊ธฐํ๋ค. ์ด๊ฑฐํ์ ๊ฐ ๋ฉค๋ฒ๋ Pascal Case๋ก ํ๊ธฐํ๋ค.
ex) WeaponType
# ์ฐธ๊ณ ๋งํฌ
์ ๋ํฐ ํ์ค ๋ค์ด๋ฐ ์ปจ๋ฒค์ : https://unity.com/kr/how-to/naming-and-code-style-tips-c-scripting-unity
C# ํ์ค ๋ค์ด๋ฐ ์ปจ๋ฒค์ : https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions
๊ฐํน ๋ณด๋ฉด ์ ๋ํฐ์ชฝ ์ฝ๋์์ ํผ๋ธ๋ฆญ ํ๋กํผํฐ๋ฅผ ์นด๋ฉ๋ก ์ฐ๊ธฐ๋ ํ๋๋ผ.
๋ํ์ ์ผ๋ก transform...
์นด๋ฉ์ด ๋ ์์ฐ์ค๋ฌ์ด ๊ฒฝ์ฐ๊ฐ ์๋๊ฑฐ ๊ฐ์. ๊ตฌ์กฐ์ฒด์ ํผ๋ธ๋ฆญ ๋ฉค๋ฒ๋ณ์๋ ๊ทธ๋ ๊ณ
enum ํ์ค์นผ์ด์๊ตฌ๋ ์ ์ฒ๋ฆฌ๊ธฐ ๋ง๋ฅ ์ดํผ ์ค๋ค์ดํฌ๋ก ํ๋๋ฐ