[TIL] 48 강의 - 코루틴(coroutine), FSM, Abstract,Interface ⭐⭐

업데이트:

카테고리:

태그: , ,


coroutine FSM Abstract Interface



유니티 심화주차 8일 , 개인공부

   [o] 알고리즘 문제 - 51
   [o] 다른반 강의 듣기
   [x] 심화주차 강의 듣기.







코루틴(coroutine)

  • 다수의 프레임에 분산시켜서 실행할 수 있는 문법
  • 일반 메서드는 1프레임에 실행
  • 코루틴은 동시적이다, 비동기 X
Coroutine coroutine = null

void Update()
{
    coroutine = StartCoroutine(CoFade())

    if(input.GetKeyDown("t"))
    {
        if(coroutine !=null) StopCoroutine(coroutine)
    }
}

  • StopCoroutine(함수명()) 은 원하는 때에 멈추지 않을 수도 있다.
  • StopCoroutine(“함수명”), stopAllCoroutine
  • StopCoroutine(“함수명”)은 추적이안된다.
  • 위 방법으로 변수를 이용해서 사용하자.
  • Waitforsecont 보다 게임의 프레임을 맞추고 waitforendofframe을 쓰면 모든컴퓨터의 기준을 똑같이 가능.
  • yield return WWW 서버관련

</div>







동기 비동기

동기, 비동기
image

유니티 단일 스레드
C# 멀티스레드 이용가능 BUT 유니티 기능에 접근 불가능
UnityMainThreadDispatcher등을 이용, 구현(Queue사용)







심화주차강의

FSM

유한 상태 기계(Finite State Machine, FSM)

  • FSM의 개념
    FSM은 유한 상태 기계를 나타내는 디자인 패턴입니다.
    상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템입니다.
  • FSM의 구성 요소
    상태 (State): 시스템이 취할 수 있는 다양한 상태를 나타냅니다.
    전환 조건 (Transition Condition): 상태 간 전환을 결정하는 조건입니다.
    동작 (Action): 상태에 따라 수행되는 동작 또는 로직을 나타냅니다.
  • FSM의 예시 : 플레이어 상태 관리
    상태: 정지 상태, 이동 상태, 점프 상태
    전환 조건: 이동 입력, 점프 입력, 충돌 등의 조건
    동작: 이동 애니메이션 재생, 점프 처리, 이동 속도 조정 등







추상클래스, 인터페이스 차이

추상클래스(Abstract) - 설계목적 구현x
상속받은 자식이 새로 구현(반드시 오버라이딩)
반드시 구현해야 할 건 추상클래스로 선언하자.
부모 public abstract void 함수();
자식 public override void 함수();

추상클래스 문제점 -> 다중상속 x -> Interface 사용
다중상속 안되는 이유 -> 추상클래스에는 일반함수도 포함되어 있다.

인터페이스(Interface) -> 일반함수, 일반변수 선언 X -> 다중상속 O







Input system

inputAction.CallbackContext 를 통해 input value를 받아올 수 있다.
해당 값은 inputAction에서 지정한 형태로 Cast 가능
Event 에는 총 3가지 가 있다. started, performed, canceled 가 있다.

move.started += onmovement;
move.canceled -= onmovement;







잡담,정리

코루틴은 비동기같은 동기
추상클래스, 인터페이스 차이




참고 : 유니티 TOP


📔

댓글남기기