사용자 지정 액션 작성 (C#)

사용하는 것 외에도 내장 동작arrow-up-right을(를) 스크립트(C#)로 직접 작성할 수 있습니다.

circle-info

반드시 읽어보세요 고급 개념 페이지도.


커스텀 동작을 만드는 다양한 방법

Text Animator 3.0부터는 프로젝트 요구에 따라 더 많은 유연성을 제공하는 다양한 방식으로 동작을 만들 수 있습니다.

컴포넌트로서 동작 생성하기

circle-check
[System.Serializable]
class ExampleActionComponent : TypewriterActionScriptable
{
    [SerializeField] float timeToWait;
    
    // 주요 로직은 여기, 
    
    // ...무상태로
    protected override IActionState CreateCustomState(ActionMarker marker, object typewriter)
        => new ExampleState(timeToWait);
        
    // ...또는 코루틴으로
    protected override IEnumerator PerformAction(TypingInfo typingInfo)
    {
        // yield return ...
    }
}

스크립터블 오브젝트로서 동작 생성하기

circle-check
circle-exclamation

동작 로직을 구현하는 다양한 방법

동작의 핵심 로직을 어떻게 작성할지 결정할 수 있습니다.

  • 코루틴(IEnumerator) 내부에서, 또는

  • 별도의 "틱" 메서드(동작을 계속 실행해야 하는지 또는 완료되었는지 반환하는)로.

시작하려면 올바른 네임스페이스를 임포트하세요:

코루틴 만들기

코루틴을 작성하는 것은 꽤 간단합니다!

예를 들어, TypewriterAction 클래스(컴포넌트든 스크립터블이든) 내부에서 PerformAction 메서드를 오버라이드하면 됩니다:

무상태(stateless) 동작 만들기

반면 무상태 동작을 만들려면 IActionState 를 상속하는 커스텀 구조체를 만들고(이 경우: 타입라이터가 진행되기 전에 몇 초 동안 대기하는 동작을 수행함) 다음과 같이 작성해야 합니다:

그런 다음 Action 클래스 내부에서 CreateCustomState 메서드를 오버라이드하여 이 구조체를 인스턴스화할 수 있습니다(여기서 본 것처럼 커스텀 동작을 만드는 다양한 방법).

속성

  • 마커 매개변수는 태그에 대한 유용한 정보를 포함합니다. 예를 들어 ID나 함께 전달되는 매개변수가 있는지 여부(예: <playSound=02>).

  • typewriter 는 현재 동작을 수행하고 있는 Typewriter 컴포넌트 또는 AnimatedLabel을 참조합니다

  • typingInfo 에는 현재 타이핑 속도(수정할 수 있음)와 타입라이터 내부에서 경과한 시간과 같은 정보가 포함되어 있습니다.


circle-check