Coding Convention - AppleMangoSpd/TPSWithTower GitHub Wiki

κ°œμš”

ν˜‘μ—…κ³Ό μ½”λ“œ 해석을 μœ„ν•΄ FPSWithTowerλ₯Ό μ œμž‘ν•  λ•Œ μ‚¬μš©λ˜λŠ” μ½”λ”© κ·œμΉ™μ„ 정리해둔 λ¬Έμ„œ

읽기 μ‰¬μš΄ μ½”λ“œ μž‘μ„±μ„ λͺ©ν‘œλ‘œ μž‘μ„±λ¨

ν•¨μˆ˜ 및 λ³€μˆ˜ μž‘μ„± μˆœμ„œ

  • public - protected - private 순으둜 μž‘μ„±ν•œλ‹€

μ˜ˆμ‹œ

public class SampleClass
{
   public void SamplePublicFunction(){ } 
   public float _publicFloat;

   protected void SampleProtectedFunction(){ }
   protected float _protectedFloat;

   private void SamplePrivateFunction() { }
   private float _privateFloat;
}

ν•¨μˆ˜ 및 λ³€μˆ˜ 넀이밍 κ·œμΉ™

λͺ¨λ“  ν•¨μˆ˜/λ³€μˆ˜λŠ” 파슀칼과 μΉ΄λ©œλ°©μ‹μ„ ν•©μ³μ„œ μ‚¬μš©ν•œλ‹€

  • ν•¨μˆ˜λŠ” λŒ€λ¬ΈμžλΆ€ν„° μž‘μ„±ν•œλ‹€.

    • 단어λ₯Ό μ—¬λŸ¬κ°œ μ‚¬μš©ν•˜λŠ” 경우 λ‹¨μ–΄μ˜ μ•žκΈ€μžλ₯Ό λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•œλ‹€.
  • λ³€μˆ˜λŠ” μ†Œλ¬ΈμžλΆ€ν„° μž‘μ„±ν•œλ‹€.

    • 단어λ₯Ό μ—¬λŸ¬κ°œ μ‚¬μš©ν•˜λŠ” 경우 λ‘λ²ˆμ§Έ λ‹¨μ–΄λΆ€ν„°μ˜ μ•žκΈ€μžλ₯Ό λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•œλ‹€.
  • λ©€λ²„λ³€μˆ˜λŠ” _λ₯Ό 뢙인닀

  • λ©”κ²Œλ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜λŠ” _λ₯Ό 뢙이지 μ•ŠλŠ”λ‹€

μ˜ˆμ‹œ

public class SampleClass
{
   public void SampleFunction(float sampleVariable) 
   {
        float localVariable = 10;
   }
   public float _sampleFloat;
}

λ³€μˆ˜/ν•¨μˆ˜μ΄λ¦„μ€ κΈ°λŠ₯을 μ˜λ―Έν•˜λ„λ‘ λ§Œλ“ λ‹€

  • boolλ°˜ν™˜ν•¨μˆ˜λŠ” μ•žμ— is/hasλ₯Ό 뢙인닀

μ˜ˆμ‹œ

public class NamingSampleClass
{ 
   public bool IsTrue()
   {
       return true;
   }
   public bool HasObject()
   {
       return true;
   }
}
  • μ’Œν‘œ 등을 ν‘œκΈ°ν•  λ•Œ λ³€μˆ˜μ˜ X, YλŠ” λ§ˆμ§€λ§‰μ— _와 ν•¨κ»˜ 뢙인닀

μ˜ˆμ‹œ

public float _coord_X;
public float _coord_Y;

var

  • varμ‚¬μš©μ€ μ§€μ–‘ν•˜λ˜ μ•„λž˜μ™€ 같은 μƒν™©μ—μ„œλŠ” μ‚¬μš©μ΄ ꢌμž₯λœλ‹€.
    • 객체 μƒμ„±μ‹œμ—λŠ” 뒀에 μžλ£Œν˜•μ΄ λͺ…μ‹œλ¨μœΌλ‘œ varμ‚¬μš©μ„ 톡해 μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μž‘μ„±

μ˜ˆμ‹œ

//var == SampleClass
var _sampleclass = new SampleClass();

클래슀 넀이밍 κ·œμΉ™

λͺ¨λ“  ν΄λž˜μŠ€λŠ” 파슀칼 방식을 μ‚¬μš©ν•œλ‹€

  • λͺ¨λ“  ν΄λž˜μŠ€λŠ” λŒ€λ¬ΈμžλΆ€ν„° μž‘μ„±ν•œλ‹€
    • μΆ”μƒν΄λž˜μŠ€λŠ” μ•žμ— Aλ₯Ό 뢙인닀
    • μΈν„°νŽ˜μ΄μŠ€λŠ” μ•žμ— Iλ₯Ό 뢙인닀

μ˜ˆμ‹œ

public class SampleClass { }

public abstract class ASampleAbstract { }

public interface ISampleInterface { }

μ ‘κ·Όμ œν•œμž

μ ‘κ·Όμ œν•œμžλŠ” 항상 λͺ…μ‹œν•΄μ€€λ‹€

  • interface의 κ²½μš°λŠ” μƒλž΅ν•œλ‹€

  • 기획적인 μΈ‘λ©΄μ—μ„œ μˆ˜μ •μ΄ ν•„μš”ν•˜μ§€λ§Œ μ™ΈλΆ€ν΄λž˜μŠ€μ—μ„œμ˜ 접근은 λΆˆκ°€λŠ₯ν•œ λ³€μˆ˜λ“€μ€ private μ„ μ–Έ ν›„ SerializeFieldλ₯Ό μ μš©ν•œλ‹€

[SerializeField]
private float _playerSpeed;
  • privateλ³€μˆ˜μ˜ get set은 이름 μ•žμ˜ _λ₯Ό λΉΌκ³  λ³€μˆ˜λͺ…μœΌλ‘œ λ§Œλ“ λ‹€
private float _playerHp;
public float playerHp
{
   get;
   set;
}

주석

  • 주석은 μ€„μ˜ 끝이 μ•„λ‹Œ λ³„λ„μ˜ 쀄에 μž‘μ„±ν•œλ‹€

μ˜ˆμ‹œ

//SampleFunc에 λŒ€ν•œ 주석
public void SampleFunc()
⚠️ **GitHub.com Fallback** ⚠️