별도로 설치된 트랙에 설정된 TimelineClip 표시 이름 변경
개시하다
독자적으로 설치된 트랙을 준비하면 아래 그림처럼 이 트랙에 편집된 디스플레이 이름을 설정할 수 있습니다.
TrackClipTypeAttribute
설정된 PlayableAsset
클래스 이름을 계승할 수 있습니다.그러나 이렇게 설정된 것은 무엇이든 기본 이름을 표시하는 상태라면 편집마다 설정된 내용에 따라 무엇을 설정했는지 모르는 상황이 발생할 수 있다
편집을 선택해서 Inspector 보기를 보면 상세한 내용을 알 수 있다면 시간을 조금 절약하고 Timeline 창만 보면 무엇을 설정했는지 알 수 있다
Inspector 보기에서 수동으로 이름을 설정할 수도 있지만, 파라미터를 설정한 다음에 편집된 디스플레이 이름을 수동으로 다시 쓰는 것은 현실적이지 않다
프로그램으로 자동으로 이름을 다시 쓰는 방법을 찾아보세요.
TimelineClip.디스플레이 설정Name
실제로
TimelineClip
클래스에서 이 편집의 디스플레이 이름을 변경하는 속성을 준비했습니다TimelineClip.displayName
문자열을 설정하여 표시 이름을 임의의 문자로 변경할 수 있습니다(왠지 이 속성이 ScriptReference에 없음
Unity2018.2부터
TimelineClip
생성 시기는 상속TrackAsset
된 반에서 얻을 수 있다이번에는 그 타이밍 설정
TimelineClip.displayName
의 샘플 코드를 소개해 드리겠습니다.샘플 코드
SampleTrack.cs
[TrackClipType(typeof(SamplePlayableAsset))]
public class SampleTrack : TrackAsset
{
// ※このメソッドはUnity2018.2からoverrideできるようになったのでそれ以前のバージョンでは使えません
protected override void OnCreateClip(TimelineClip clip)
{
RenameClipDisplayName(clip);
}
void RenameClipDisplayName(TimelineClip clip)
{
var asset = clip.asset as SamplePlayableAsset;
clip.displayName = asset.Type.ToString();
}
}
SamplePlayableAsset.cspublic enum SampleType
{
Hoge,
Fuga,
Piyo,
}
public class SamplePlayableAsset : PlayableAsset
{
[SerializeField] SampleType type;
public SampleType Type
{
get { return type; }
}
}
여기 샘플 코드처럼 설치하면 새로 생성된 편집에서 임의의 이름으로 자동으로 이름을 바꿀 수 있습니다편집된 매개 변수를 가지고 놀고도 이름을 바꾸고 싶어요.
솔직히 상술한 견본 코드는 편집이 생성된 시기에만 이름을 바꿀 수 있고, 생성된 후에 편집을 가지고 노는 파라미터를 만족시키지 못하면 이 파라미터의 이름에 부합되는 조건으로 바꾸기를 희망한다
이 필요조건을 충족시키기 위해서는 각
PlayableAsset
의 매개 변수 변경을 검측해야 하지만, 이를 위해 Editor 확장제작CustomDrawer
, 검측값SerialzeProperty
으로 변경...이렇게 하면 커질 수 있으니 대체방안을 소개하겠습니다.SampleTrack.cs
[TrackClipType(typeof(SamplePlayableAsset))]
public class SampleTrack : TrackAsset
{
// TrackMixerを生成するタイミングを利用してリネームする
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
{
foreach (var clip in GetClips())
{
RenameClipDisplayName(clip);
}
return base.CreateTrackMixer(graph, go, inputCount);
}
protected override void OnCreateClip(TimelineClip clip)
{
RenameClipDisplayName(clip);
}
void RenameClipDisplayName(TimelineClip clip)
{
var asset = clip.asset as SamplePlayableAsset;
clip.displayName = asset.Type.ToString();
}
}
방금 전의 견본에 대해 새로운 처리를 진행하였다CreateTrackMixer
방법은 TimelineAsset
를 생성할 때PlayableGraph
모든 궤도 실례가 한 번 호출됩니다.이 시간은 EDITOr, 이름
PlayableDirector.Play
, 이름TimelineEditor.Refresh(RefreshReason.ContentsModified)
을 재생할 시기입니다.※
TimelineEditor.Refresh()
는 유니티 2018.기능파라미터 변경 후 얼마 지나지 않은 경우는 검출되지 않았지만, 재생의 타이밍을 확인하기 위해 파라미터를 조정해 주행하는 처리도 있어 큰 어려움은 없을 것으로 본다
이렇게 해서 Timeline의 제작을 더욱 편리하게 하세요!
색상도 클립 단위로 변경되었으면 좋겠습니다.
Reference
이 문제에 관하여(별도로 설치된 트랙에 설정된 TimelineClip 표시 이름 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jukey17/items/1e6c5b4b0c9f63399e14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)