(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


エディタの上部のUI(ToolBar)にTime.timeScaleを操作出来るスライダーを表示する拡張【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 6000.3.2f1


はじめに

Unity6.3からエディタの上部にあるToolBarと呼ばれる部分のUIを、

簡単に移動、非表示出来るようになり、


プログラムでの拡張も簡単に出来るようになりました。


今回はその拡張を使って、Time.timescaleを操作出来るスライダーを作ってみようという感じの記事。


ちなみに、記事中では以下のアセットを使っています。

Corgi Engine - 2D + 2.5D Platformer | Systems | Unity Asset Store




ToolBarにTime.timeScaleを操作出来るスライダーを表示する拡張

早速ですが、スライダーを表示する拡張クラスのTimeScaleEditorSliderのコードが以下の通りです。

using UnityEditor.Toolbars;//MainToolbarElementを使うように
using UnityEngine;

public static class TimeScaleEditorSlider {
  
  //Time.timeScaleをスライダーで変更する拡張
  [MainToolbarElement("TimeScale/Slider")]
  public static MainToolbarElement CreateTimeScaleSlider(){
    var content = new MainToolbarContent("TimeScale", "ドラッグでTime.timeScaleを変更");
    return new MainToolbarSlider(content, Time.timeScale, 0f, 10f, (newValue) => {
      Time.timeScale = newValue;
    });
  }

}


これをEditorフォルダ以下に配置すると、


右上の「⋮」メニューに項目が追加されます。これを押して有効にすれば、


ToolBarにスライダーが表示されます。


なお、スライダーはクリック、ドラック、直接入力のどれでも操作可能です。