Version: Unity 6.0 (6000.0)
언어 : 한국어
플레이어블 API
ScriptPlayable 및 PlayableBehaviour

플레이어블 그래프

플레이어블 그래프는 게임 오브젝트 또는 컴포넌트에 바인딩된 플레이어블 출력 세트를 정의합니다. 또한 플레이어블 그래프는 플레이어블 세트와 그 관계를 정의합니다. 그림 1에 예시가 나와 있습니다.

플레이어블 그래프는 플레이어블과 해당 출력의 라이프사이클을 담당합니다. 플레이어블 그래프를 사용하여 플레이어블을 생성하고, 연결하고, 삭제합니다.

그림 1: 플레이어블 그래프 예시
그림 1: 플레이어블 그래프 예시

그림 1에서 플레이어블 그래프를 표시할 때 이름을 간결하게 표시하기 위해 그래프 노드의 이름에서 ’Playable’을 제거했습니다. 예를 들어 ’AnimationClipPlayable’이라는 노드는 ’AnimationClip’으로 표시됩니다.

플레이어블은 IPlayable 인터페이스를 구현하는 C# 구조체입니다. 다른 플레이어블과의 관계를 정의하는 데 사용됩니다. 마찬가지로 플레이어블 출력은 IPlayableOutput을 구현하는 C# 구조체로, 플레이어블 그래프의 출력을 정의하는 데 사용됩니다.

그림 2는 가장 일반적인 코어 플레이어블 유형을 보여 줍니다. 그림 3은 코어 플레이어블 출력 유형을 보여 줍니다.

그림 2: 코어 플레이어블 타입
그림 2: 코어 플레이어블 타입
그림 3: 코어 플레이어블 출력 타입
그림 3: 코어 플레이어블 출력 타입

플레이어블 코어 유형과 플레이어블 출력 유형은 가비지 컬렉션에 메모리를 할당하지 않도록 C# 구조체로 구현됩니다.

’Playable’은 모든 플레이어블의 기본 유형으로 항상 플레이어블을 암시적으로 캐스트할 수 있습니다. 그 반대는 불가능하며, ’Playable’이 호환되지 않는 유형으로 명시적으로 캐스트되면 예외가 발생합니다. 또한 플레이어블에서 실행할 수 있는 모든 기본 메서드를 정의합니다. 유형별 메서드에 액세스하려면 플레이어블을 적절한 유형으로 캐스트해야 합니다.

‘PlayableOutput’도 마찬가지로 모든 플레이어블 출력의 기본 유형이고, ‘PlayableOutput’으로 기본 메서드를 정의할 수 있습니다.

참고: PlayablePlayableOutput은 많은 메서드를 노출하지 않습니다. 대신 ‘PlayableExtensions’ 및 ‘PlayableOutputExtensions’ 정적 클래스가 확장 메서드를 제공합니다.

모든 비추상 플레이어블에는 해당 유형의 플레이어블을 생성하는 공용 정적 메서드 Create()가 있습니다. ‘Create()’ 메서드는 항상 PlayableGraph를 첫 번째 파라미터로 사용하며, 해당 그래프는 새로 생성된 플레이어블을 소유합니다. 일부 유형의 플레이어블에는 추가 파라미터가 필요할 수 있습니다. 비추상 플레이어블 출력도 Create() 메서드를 노출합니다.

유효한 플레이어블 출력이 플레이어블에 연결되어야 합니다. 플레이어블 출력이 플레이어블에 연결되지 않으면 플레이어블 출력은 아무 작업도 수행하지 않습니다. 플레이어블 출력을 플레이어블에 연결하려면 PlayableOutput.SetSourcePlayable() 메서드를 사용합니다. 연결된 플레이어블은 해당 플레이어블 출력에 대해 플레이어블 트리의 루트 역할을 합니다.

두 플레이어블을 함께 연결하려면 PlayableGraph.Connect() 메서드를 사용합니다. 일부 플레이어블에는 입력이 불가능합니다.

PlayableGraph.Create() 정적 메서드를 사용하여 플레이어블 그래프를 생성합니다.

PlayableGraph.Play() 메서드로 플레이어블 그래프를 재생합니다.

PlayableGraph.Stop() 메서드로 플레이어블 그래프의 재생을 중지합니다.

PlayableGraph.Evaluate() 메서드로 플레이어블 그래프의 상태를 특정 시간에 평가합니다.

PlayableGraph.Destroy() 메서드로 플레이어블 그래프를 수동으로 삭제합니다. 이 메서드는 플레이어블 그래프에서 생성한 모든 플레이어블과 플레이어블 출력을 자동으로 삭제합니다. 플레이어블 그래프를 삭제하려면 이 삭제 메서드를 수동으로 호출해야 합니다. 그렇지 않으면 Unity가 오류 메시지를 전송합니다.


  • 2017–07–04

  • Unity 2017.1의 새로운 기능 NewIn20171

플레이어블 API
ScriptPlayable 및 PlayableBehaviour