コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】シーンやタグ、レイヤー、リソース、インプットなどの名前を定数で管理できる「TypeSafe」紹介($10.80)

f:id:baba_s:20171012174826p:plain

概要

2015/8/3 に「TypeSafe」がリリースされました

「TypeSafe」を導入すると、
シーンやタグ、レイヤー、リソース、インプットなどの名前を定数で管理できるようになります

検証環境

  • Unity 2017.1.1f1
  • TypeSafe 1.3.2

使い方

f:id:baba_s:20171012175018p:plain

「TypeSafe」を導入して上記のダイアログが表示されたら
「Start Scan」ボタンを押します

f:id:baba_s:20171012175359p:plain

すると、「Assets/TypeSafe/usr」フォルダに

  • Animator
  • Audio Mixer
  • Input
  • LayerMask
  • Layer
  • Resource
  • Scene
  • Sorting Layer
  • Tag

これらの名前を定数で管理するスクリプトが生成されます

Input や Resource、Scene などは便利なプロパティや関数も自動で定義されます
下記に生成されたスクリプトの使用例を記載します

生成されたスクリプトの使用例

Input

var axis      = Input.GetAxis( SRInput.Horizontal );
var isUp      = SRInput.Horizontal.Up;
var isDown    = SRInput.Horizontal.Down;
var isPressed = SRInput.Horizontal.IsPressed;
var rawValue  = SRInput.Horizontal.RawValue;
var value     = SRInput.Horizontal.Value;

LayerMask

var isHit = Physics.Raycast( ray, maxDistance, SRLayerMask.UI );

Layer

var isHit = Physics.Raycast( ray, maxDistance, SRLayers.UI.mask );
gameObject.layer = SRLayers.UI.index;
Debug.Log( SRLayers.UI.name );

Resource

var prefab1  = Resources.Load<GameObject>( SRResources.Cube.Path );
var prefab2  = SRResources.Cube.Load();
var request  = SRResources.Cube.LoadAsync();
var isLoaded = SRResources.Cube.IsLoaded;

SRResources.Cube.Unload();

// プレハブの場合 Instantiate 関数が使用可能
var clone1 = SRResources.Cube.Instantiate();
var clone2 = SRResources.Cube.Instantiate( parent );

Scene

SceneManager.LoadScene( SRScenes.Example );

SRScenes.Example.Load();
SRScenes.Example.LoadAdditive();

var operation1 = SRScenes.Example.LoadAsync();
var operation2 = SRScenes.Example.LoadAdditiveAsync();

Sorting Layer

canvas.sortingLayerID = SRSortingLayers.Foreground;
canvas.sortingLayerName = SRSortingLayers.Foreground;

Tag

gameObject.tag = SRTags.Player;

定数の更新方法

f:id:baba_s:20171012182139p:plain

シーンやタグなどに変更があった時に定数は自動で更新されます

f:id:baba_s:20171012182208p:plain

Unity メニューの「Assets>TypeSafe Refresh」で更新することも可能です

設定

f:id:baba_s:20171012182408p:plain

Unity メニューの「Window>TypeSafe>Open Settings」から設定画面を開くことができます

General

f:id:baba_s:20171012182446p:plain

大項目 小項目 内容
Automation Rebuild Automatically 定数を自動で生成するかどうか
Minimum Build Time Automatic Rebuild Delay ?
Triggers チェックされたデータが変更された時に
定数を自動で生成する

Name Scheme

f:id:baba_s:20171012182715p:plain

定数を管理するクラスの名前空間や
クラス名のプリフィックス、サフィックスを設定できます

Advanced

f:id:baba_s:20171012182845p:plain

大項目 小項目 内容
Output Directory 定数を管理するスクリプトの出力先
Disabled Scenes Include Disabled Scenes 無効化しているシーンの定数を作成するかどうか
Toggle Data Sources 定数を管理しないデータはチェックを外す