Unityのインスペクタで設定出来る値を見てみる

記事内に広告が含まれています。

今回はUnityのスクリプトで設定したフィールドの型によってインスペクタでどのように表示されるかを確認してみます。

よく使うのはintやfloat等の基本型ですが、Unity特有の型も指定しそれがどのように表示されるかも確認します。

スポンサーリンク

スクリプトで色々なフィールドの型を宣言する

まずはスクリプトで色々な型のフィールドを宣言し、それを空のゲームオブジェクトに設定してインスペクタでどのように表示されるかを確認してみましょう。

スクリプトはC#で作成し、名前をInspectorValueとします。

作成していない他の型もありますが、とりあえずよく使うものや違いが大きいものを載せました。

このスクリプトを空のゲームオブジェクトに設定し、インスペクタで表示したものが

型によって変わるインスペクタの設定項目

になります。

設定出来る項目がかなり変わりますね。

色々な値の設定が出来るようになったのでインスペクタを操作してどんな感じで設定出来るか確認してみましょう。

↑のようにそれぞれ変更出来るようになりました。

インスペクタで設定した値を取得してみる

さきほどインスペクタで値の設定をしたので、スクリプトからその設定した値を取得して使ってみたいと思います。

まずはヒエラルキー上で右クリック→3D Object→Cubeを選択します。

CubeにInspectorValueスクリプトを設定します。

今回はAnimationCurveとGradientの値を使ってみたいと思います。

Startメソッド内でMeshRendererを取得し、マテリアルの色を変えています。

アニメーションカーブのキーフレームが1つでもあればコルーチンをスタートさせています。

UpdateメソッドではグラディエーションのEvaluateを使って時間経過での値を取得しマテリアルの色を変更しています。

Evaluateの引数には0~1の値を設定する必要があるのでMathf.Sinで-1~1の値を取得し、それをMathf.Absで絶対値にしています。

同じCubeのマテリアルを変更するのでStart、Update内のマテリアルの色を変更している箇所のどちらかをコメント化し実行して確認してください。

またコルーチンを使ってアニメーションカーブで設定したキーフレームの値の出力を繰り返しています。

コルーチンに関しては

Unityでコルーチンを使って定期的に処理をする
Unityでコルーチンを使うと定期的に何らかの処理を行える事が出来るようになります。一見解り辛いけど使い方がわかれば便利かも!?

を参照してください。

ColorやGradientは先ほどのサンプル動画と同じように設定してください。

アニメーションカーブは

アニメーションカーブの作成

↑のような感じでいくつかキーフレームを作成します。

キーフレームはウインドウ内で右クリック→Add Keyで追加出来ます。

設定を終えたら実行して確認してみてください。

Colorを変更するとCubeがその色に変更されます。

Gradientは時間経過とともに色が変更されていきます。

AnimationCurveはキーフレームの値がコンソールに繰り返し表示されるようになります。

終わりに

今回は実用的な使い方はしていませんが、アニメーションカーブは時間経過とともに値を変更したい時に利用すると便利かもしれません。

例えば動くブロックがあり、ある程度不定期にY座標の位置を動かしたい時にアニメーションカーブを使ってキーフレームの値を使って到達位置を変えるといった時に使えます。

gradientの時と同じようにAnimationCurve.Evaluateを使うとアニメーションカーブによって値を変更する事が出来るので便利ですね。

使う用途は色々あると思いますが、いざこういう値を使いたい!と思った時にフィールドの型をどのように設定すればインスペクタでどのように項目が表示されるか?

というのを知っておくといいですね。

タイトルとURLをコピーしました