2024년 11월 28일 TIL

John Jean·2024년 11월 27일

Unity

목록 보기
3/19

🎮 Unity

인터페이스

C#에서 인터페이스는 일종의 계약서 같은 개념으로, 클래스나 구조체가 반드시 구현해야 할 메서드, 속성, 이벤트 또는 인덱서의 목록을 정의한다. 인터페이스는 구현 방법이 아니라 어떤 기능을 제공해야 하는지를 규칙처럼 정의한다.

  • 인터페이스는 리모컨과 비슷하다.
    + 리모컨에는 버튼(기능)이 있지만, 각 버튼이 실제로 어떻게 동작하는지는 리모컨이 연결된 기기(구현 클래스)에 따라 달라진다.
    + 전자제품 각각의 기기가 리모컨의 버튼(인터페이스)을 구현해야 한다. 리모컨(인터페이스)은 파워버튼 볼륨조절 같은 기능을 정하지만, 실제 동작은 기기에 따라 다르다.\

특징

  1. 구현 강제
    • 인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 멤버를 반드시 구현해야 함.
  2. 다중 상속 가능
    • C#에서는 클래스는 하나의 클래스만 상속할 수 있지만, 여러 개의 인터페이스는 동시에 구현할 수 있다.
  3. 구현 내용 없음
    • 인터페이스 자체는 멤버들의 이름과 형식만 정의하고, 구현(코드)은 포함하지 않는다.

왜 사용할까?

  1. 유연성과 확장성: 여러 클래스가 동일한 인터페이스를 구현하면, 다양한 객체를 같은 방식으로 사용할 수 있다.
  2. 다형성 지원: 인터페이스를 통해 서로 다른 객체를 동일한 메서드나 속성으로 처리할 수 있다.
  3. 코드 재사용성: 인터페이스로 기능을 정의하고, 구현만 변경해도 코드 구조를 크게 바꾸지 않아도 됨.

상태 등을 지정할 수 있는 enum

public enum State {
	Ready,
	Empty,
	Reloading
}// 상태 설정

State gunState;
gunState = State.Ready;
gunState = State.Empty;
gunState = State.Reloading;

코루틴 - Coroutine

유니티의 코루팀 메서드는 대기 시간을 가질 수 있는 메서드이다. 유니티에서 코루틴 메서드는 IEnumerator 타입을 반환해야 하며, 처리가 일시 대기할 곳에 yield 키워드를 명시해야 한다.

코루틴의 동작 원리

IEnumerator Clean() {
	// clean A
	yield return new WaitForSeconds(10f); // wait 10secs
	// clean B
	yield return new WaitForSeconds(20f); // wait 10secs
	// clean C
}

코루틴 메서드는 StartCoroutine() 메서드로 실행한다.

StartCoroutine(Clean());

코루틴의 문법

  • 초단위로 쉬기
    - yield return new WaitForSeconds(10f);
  • 한 프레임만 쉬기
    - yield return null;
  • 코루틴 메서드 입력 방법
    - StartCoroutine(Clean());
    - &
    - StartCoroutine("Clean");


profile
크래프톤 6기 정글러

0개의 댓글