반응형
이번 글도 이어서 Unity에서 코드 작성을 위한 스타일 가이드에 강의에서 알려준 내용을 한번 정리해보자!
https://www.youtube.com/watch?v=eoJLowmz5zU&t=938s
1. 클래스와 메서드 구성
- 가독성과 유지보수성: 코드는 읽기 쉽고 이해하기 쉬워야 함.
- 일관된 스타일과 규칙: 이름 짓기와 코드 구조를 일정하게 유지.
//비일관적인 코드
public class PlayerScript : MonoBehaviour
{
public int health_points = 100;
public bool isAlive = true;
void heal()
{
health_points += 10;
}
}
//일관적인 코드
public class Player : MonoBehaviour
{
public int HealthPoints { get; private set; } = 100;
public bool IsAlive { get; private set; } = true;
public void Heal()
{
HealthPoints += 10;
}
}
//변수와 메서드는 Pascal Case와 Camel Case와 같은 일관된 스타일
- 최소한의 주석 사용: 주석 없이도 코드가 명확하게 이해될 수 있도록 작성.
** 추가적으로 **
클래스 내부의 구성 요소는 논리적인 순서로 배치해야 가독성이 좋아진다.
일반적으로는 필드, 프로퍼티, 생성자, 공용 메서드, 비공용 메스드 순으로 정리!
예를 들면
//정리가 안된 코드 public class Enemy : MonoBehaviour { void Start() { } private void DealDamage() { } public float Health = 50f; public void TakeDamage(float amount) { Health -= amount; } } //정리가 된 코드 public class Enemy : MonoBehaviour { // 필드 public float Health { get; private set; } = 50f; // Unity 이벤트 메서드 void Start() { // 초기화 코드 } // 공용 메서드 public void TakeDamage(float amount) { Health -= amount; } // 비공용 메서드 private void DealDamage() { // 내부 로직 } }
2. 메서드 작성 규칙
- 메서드는 동작을 표현하는 동사로 시작 (e.g., Move(), Stop(), ...).
- 단일 책임 메서드: 한 가지 동작만 수행하도록 작성.
- 매개변수 최소화: 간단하고 이해하기 쉬운 메서드 유지 (객체나 구조체로 관련된 매개변수를 그룹화!!!)
// 매개변수 과다 (비효율적)
public void ConfigurePlayer(string name, int health, int speed, int score)
{
Name = name;
Health = health;
Speed = speed;
Score = score;
}
// 매개변수를 객체로 그룹화
public class PlayerConfig
{
public string Name;
public int Health;
public int Speed;
public int Score;
}
public void ConfigurePlayer(PlayerConfig config)
{
Name = config.Name;
Health = config.Health;
Speed = config.Speed;
Score = config.Score;
}
3. 이벤트와 핸들러
- 이벤트는 Action 대리자를 사용해 간결하게 정의.
public class GameEvents : MonoBehaviour
{
public event Action OnPlayerDeath; // 이벤트 정의
public event Action<int> OnScoreUpdated; // 매개변수 포함
public void TriggerPlayerDeath()
{
OnPlayerDeath?.Invoke(); // 이벤트 발생
}
public void UpdateScore(int newScore)
{
OnScoreUpdated?.Invoke(newScore); // 이벤트 발생
}
}
- 이벤트를 발생시키는 메서드는 On으로 시작 (e.g., OnPlayerDeath()). -> 일반 메서드랑은 분리하여 알아보기 쉽게!
- 이벤트 핸들러는 이벤트 이름과 일치하도록 명명.
public class UIManager : MonoBehaviour
{
public void GameEvents_OnPlayerDeath()
{
Debug.Log("Player has died.");
}
public void GameEvents_OnScoreUpdated(int newScore)
{
Debug.Log($"New Score: {newScore}");
}
}
오늘은 여기까지
이번 포스팅에서는 C# 스타일 가이드 E-Book과 Unity에서 제공해준 유튜브 영상을 통해
클래스와 메서드, 그리고 이벤트에 대해 알아보았다.
다음 포스팅도 이어서 C# 스타일 가이드 E-Book과 Unity에서 제공해준 유튜브 영상을 통해
알아둬야 할 내용들을 정리해보자
반응형
'Unity 개발 > 기술 향상' 카테고리의 다른 글
[Unity] 실행 순서 Awake, Start, OnEnable (0) | 2024.10.29 |
---|---|
[Unity Error] TextMeshPro 한글 깨짐 Unicode value \uD55C was not found in the [LiberationSans SDF] font asset (0) | 2024.10.27 |
[Unity] 깔끔한 코드 작성을 위한 스타일 가이드 (1) (1) | 2024.10.26 |
[Unity] Google STT (Speechs-To-Text) 적용 해보기 (0) | 2024.10.25 |
[Unity] 모바일 앱과 웹 간의 소켓 통신 방법 및 예제 (0) | 2024.10.23 |