【Unity】TimelineのTrackの見た目を変える

TimelineのTrackの見た目を変える場合にはTrackEditorクラスを使います。

[CustomTimelineEditor(typeof(HogeTrack))]
public class HogeTrackEditor : TrackEditor
{
}

CustomTimelineEditor Attributeに指定したTrackが拡張されます。

TrackDrawOptions

TrackEditorにはTrackDrawOptionsを指定できます。 デフォルトでは次のように設定されています。

public virtual TrackDrawOptions GetTrackOptions(TrackAsset track, UnityEngine.Object binding)
{
    return new TrackDrawOptions()
    {
         errorText = GetErrorText(track, binding, TrackBindingErrors.All),
         minimumHeight = DefaultTrackHeight,
         trackColor = GetTrackColor(track),
         icon = null
     };
}
設定できる項目
  • エラーメッセージ
  • 高さの最小値
  • Trackの色
  • アイコン

f:id:albatrus:20210715155717p:plain:w350
アイコンを変更した場合

名前の変更

名前はTrack名を変更すると変わります。 次の例ではTrackEditorのOnCreateのタイミングで名前を変更しています。

public override void OnCreate(TrackAsset track, TrackAsset copiedFrom)
{
    track.name = "ほげとらっく";
    base.OnCreate(track, copiedFrom);
}

f:id:albatrus:20210715162157p:plain:w350
Trackの名前変更

なお、名前に関してはTrackが何かしらBindingをしていると表示から消えてしまいます。

f:id:albatrus:20210715162404p:plain:w350
名前が消えてしまう

その他

色々調べたのですが、現状それ以外の項目はカスタマイズできなさそうです。 Animation TrackとAudio Trackには別途ボタンが設定されているので、もしかすると何かしらのボタンはつけられるのかもしれません。

参考リンク

qiita.com