Version: Unity 6.0 (6000.0)
言語 : 日本語
IMGUI の拡張
GUI Style (IMGUI)

GUI スキン (IMGUI)

Switch to Scripting

GUISkin は、GUI に適用できる GUIStyle のコレクションです。各__コントロール__タイプには、独自のスタイル定義があります。スキンを使用すると、単独のコントロールではなく UI 全体にスタイルを適用することができます。

Inspector に表示される GUI スキン
Inspector に表示される GUI スキン

GUISkin を作成するには、メニューバーから Assets->Create->GUI Skin を選択します。

: このページでは、スクリプティングのみの UI システムである IMGUI システムの一部について説明します。Unity には、完全にゲームオブジェクトベースの UI システムが用意されており、必要に応じて使用できます。ゲームオブジェクトベースの UI システムでは、ユーザーインターフェースの要素を可視のオブジェクトとしてシーンビューで設計したり、編集したりすることができます。詳細については、UI システムマニュアルを参照してください。

プロパティ

GUI Skin 内のプロパティはすべて、個別の GUIStyle です。スタイルの使用方法の詳細については、GUIStyle ページを参照してください。

プロパティ: 機能:
Font GUI でのすべてのコントロールに使用されるグローバルフォント。
Box すべてのボックスに使用されるスタイル
ボタン すべてのボタンに使用されるスタイル
Toggle すべてのトグルに使用されるスタイル
ラベル すべてのラベルに使用されるスタイル
Text Field すべてのテキストフィールドに使用されるスタイル
Text Area すべてのテキストエリアに使用されるスタイル
Window すべてのウィンドウに使用されるスタイル
Horizontal Slider すべての水平スライダーバーに使用されるスタイル
Horizontal Slider Thumb すべての水平スライダーサムボタンに使用されるスタイル
Vertical Slider すべての垂直スライダーバーに使用されるスタイル
Vertical Slider Thumb すべての垂直スライダーサムボタンに使用されるスタイル
Horizontal Scrollbar すべての水平スクロールバーに使用されるスタイル
Horizontal Scrollbar Thumb すべての水平スクロールバーサムボタンに使用されるスタイル
Horizontal Scrollbar Left Button すべての水平スクロールバーの左スクロールボタンに使用されるスタイル
Horizontal Scrollbar Right Button すべての水平スクロールバーの右スクロールボタンに使用されるスタイル
Vertical Scrollbar すべての垂直スクロールバーに使用されるスタイル
Vertical Scrollbar Thumb すべての垂直スクロールバーサムボタンに使用されるスタイル
Vertical Scrollbar Up Button すべての垂直スクロールバーの上スクロールボタンに使用されるスタイル
Vertical Scrollbar Down Button すべての垂直スクロールバーの下スクロールボタンに使用されるスタイル
Custom 1–20 すべてのコントロールに適用できる追加のカスタムスタイル。
Custom Styles すべてのコントロールに適用できる追加のカスタムスタイルの配列。
設定 GUI 全体の追加設定。
        __Double Click Selects Word__ 有効にした場合、単語をダブルクリックすると、その単語が選択されます。
        __Triple Click Selects Line__ 有効にした場合、単語をトリプルクリックすると、その単語が選択されます。
        __Cursor Color__ キーボードカーソルの色。
        __Cursor Flash Speed__ テキストコントロール編集時に、テキストカーソルが点滅する速度。
        __Selection Color__ 選択したテキストエリアの色。

詳細

ゲームに対して GUI 全体を作成する場合は、すべての異なるコントロールタイプに対して、多くのカスタマイズを行うことが必要であると考えられます。リアルタイム戦略ゲームやロールプレイングゲームなど、多くの異なるジャンルで、1 つ 1 つのコントロールタイプが必要になります。

個別のコントロールは特定のスタイルを使用するため、10 以上の個別のスタイルを作成し、それらすべてを手動で割り当てるのは非効率です。GUI スキンはこの問題を解決します。GUI スキンを作成することで、個別のコントロールすべてに対して、事前定義されたスタイル群を保有することになります。1 行のコードで構成されるスキンを適用すると、個別のコントロールに対してスタイルを手動で指定する必要がなくなります。

GUI スキンの作成

GUISkin はアセットファイルです。GUI スキンを作成するには、メニューバーから Assets->Create->GUI Skin を選択します。これにより、__Project ウィンドウ__に新しい GUISkin が配置されます。

Project ウィンドウ内の新しい GUISkin ファイル
Project ウィンドウ内の新しい GUISkin ファイル

GUISkin の編集

GUISkin を作成した後、Inspector に含まれるすべてのスタイルを編集できます。例えば、Text Fieldスタイルをすべての Text Field コントロールに適用できます。

GUISkin での Text Field スタイルの編集
GUISkin での Text Field スタイルの編集

スクリプトで作成する Text Field の数に関係なく、すべてがこのスタイルを使用します。もちろん、必要に応じて、1 つの Text Field のスタイルを他のものと違うものに変更することもできます。これを行う方法については後述します。

GUISkin の適用

GUI に GUISkin を適用するには、コントロールにスキンを読み込み、適用する簡単なスクリプトを使用する必要があります。


    // Create a public variable where we can assign the GUISkin
    var customSkin : GUISkin;

    // Apply the Skin in our OnGUI() function
    function OnGUI () {
        GUI.skin = customSkin;

        // Now create any Controls you like, and they will be displayed with the custom Skin
        GUILayout.Button ("I am a re-Skinned Button");

        // You can change or remove the skin for some Controls but not others
        GUI.skin = null;

        // Any Controls created here will use the default Skin and not the custom Skin
        GUILayout.Button ("This Button uses the default UnityGUI Skin");
    }


同じ 2 つのコントロールを異なるスタイルで作成することが必要な場合があります。このために、新しいスキンを作成し再度割り当てるのは効率的ではありません。代わりに、スキンに__カスタム__スタイルの 1 つを使用します。カスタムスタイルの Name を入力すると、その名前を個別のコントロールの最後の引数として使用できます。

    // One of the custom Styles in this Skin has the name "MyCustomControl"
    var customSkin : GUISkin;

    function OnGUI () {
        GUI.skin = customSkin;

        // We provide the name of the Style we want to use as the last argument of the Control function
        GUILayout.Button ("I am a custom styled Button", "MyCustomControl");

        // We can also ignore the Custom Style, and use the Skin's default Button Style
        GUILayout.Button ("I am the Skin's Button Style");
    }

GUIStyle の操作に関する詳細については、GUIStyle ページを参照してください。UnityGUI の使用に関する詳細については、GUI スクリプティングガイドを参照してください。

GUISkin

IMGUI の拡張
GUI Style (IMGUI)