.. default-domain:: csharp .. _WINDOW: ==================== WINDOW ==================== WINDOW(ウィンドウID) { プロパティ1; プロパティ2; : : プロパティn; }; ウィンドウIDは、 :ref:`マルチID` で指定してください。 wraファイル名が **TestWindow.wra** ならば、TestWindowBase.csというファイルを自動生成します。 :: TestWindowBase.cs .. 使うときは、TestWindow.csを作り、TestWindowBaseを継承してください。 TestWindowBase.csが出力されるパスは、スクリプト上で :ref:`PATH` を使って指定できます。 :: using UnityEngine; using System; public class TestWindow : TestWindowBase { : : } .. 記述例 =========== 最少のウィンドウスクリプト ------------------------------------- :: WINDOW(250_000_00000) { STYLE = ANCHOR_CENTER; SIZE = 400,400; }; .. このスクリプトで次のようなウィンドウが表示されます。 .. image:: images/WindowSample0.png ウィンドウの原点位置は、フレームの左上です(タイトルバーの左上ではありません)。 次のように記述するとタイトルバーが見えなくなります。 :: WINDOW(250_000_00000) { STYLE = ANCHOR_TOP; SIZE = 400,400; }; .. 次のように記述するとタイトルバーが表れます。 :: WINDOW(250_000_00000) { STYLE = ANCHOR_TOP; POSITION = 0,-64; SIZE = 400,400; }; .. クローズボタンのないウィンドウスクリプト ---------------------------------------------- クローズボタンを削除するには次のようにスタイルを設定します。 :: WINDOW(250_000_00000) { STYLE = NOCLOSE|ANCHOR_CENTER; SIZE = 400,400; }; .. .. image:: images/WindowSample1.png タイトルバーを無くしたウィンドウスクリプト ---------------------------------------------- タイトルバーを無くしたウィンドウスクリプト :: WINDOW(250_000_00000) { STYLE = NOTITLEBAR|ANCHOR_CENTER; SIZE = 400,400; }; .. .. image:: images/WindowSample2.png 全てのデフォルト表示を消したウィンドウスクリプト --------------------------------------------------- 全てのデフォルト表示を消したウィンドウスクリプト :: WINDOW(250_000_00000) { STYLE = NOTITLEBAR|NOFRAME|ANCHOR_CENTER; SIZE = 400,400; }; .. .. image:: images/WindowSample3.png 全ての表示をコントロールを直接記述することで見た目のカスタマイズを最大限行えます。 ウィンドウのドラッグ移動について --------------------------------------------------- STYLEにDRAGを付けることによって、ドラッグによるウィンドウの移動を許可します。 タイトルバー、フレームやユーザー定義のコントロールをドラッグしたときに、ウィンドウを移動できます。 ただし、コントロールのスタイルにDRAGが付いているときは、ウィンドウの移動は発生しません。 以下の例を試してください。 :: WINDOW(250_000_00000) { STYLE = ANCHOR_CENTER|DRAG|NOFRAME; POSITION = 0,0; CLOSE_POSITION = 400,0; SIZE = 400,400; }; FRAME(Test) { STYLE = DRAG; SIZE = 400,400; }; .. .. image:: images/WindowSample4.png この例では、フレームをドラッグすると、フレームが複製され、その複製が移動します。 その反面、タイトルバーをドラッグするとウィンドウを移動することができます。 プロパティ =========== .. _use_assetbundle_or_resource: **RESOURCE = マルチID** ----------------------------------- [Tools]->[KsSoft]->[Export Window Resource]を行ったとき、アセットバンドルとして出力します。 同一の :ref:`マルチID` を指定していると、一つにまとめてアセットバンドル化してくれます。 :: RESOURCE = 000_014_00000; .. この例では、000_014_00000.unity3dというアセットバンドルに出力します。 .. _resource_a: **RESOURCE = パス** ----------------------------------- 指定したパスに、リソースデータとして出力されます。 同一のパスを指定したときは、一つにまとめたリソースを出力してくれます。 :: RESOURCE = "Assets/KsSoft/Resources/windows"; .. この例では、Assets/KsSoft/Resources/windows.assetというリソースを出力します。 .. _WINDOW_PROP_PATH: **PATH** = パス文字列 ----------------------------------- ウィンドウベースクラスを出力するパスを設定します。 カレントパスは、Unityプロジェクトの直下になります。 :: PATH = "../../../client/Assets/Script/TestWindow.cs"; **TEX_ID** = テクスチャID ----------------------------------- デフォルトのテクスチャIDを設定します。 ここで設定した値は、各コントロールにおいて、テクスチャIDを省略したとき、適用されます。 :: TEX_ID = 010_000_00010; **TEX_ID** 0~7 = テクスチャID ----------------------------------- デフォルトのテクスチャIDを設定します。 コントロール内のテクスチャIDを省略したとき、この値が使われます。 また、フレーム、タイトルバーに使うテクスチャもここで指定できます。 **CAPTION** = キャプションID ----------------------------------- ウィンドウのキャプション文字を設定します。 **STYLE** に対して **NOTITLEBAR** が付いているときは、無視されます。 :: CAPTION = 020_000_00010; **POSITION** = :ref:`X,Y` ----------------------------------------------------------- ウィンドウ表示位置を決定します。 表示位置は、STYLEで指定するアンカーによって変わります。 座標は :ref:`スクリーン` からの割合指定が可能です。 :: display position = (x,y) + screen size * ratio/100; .. :: POSITOIN = 30{50},-40{50}; .. この例では、スクリーンサイズが640x960であるならば、実際のウィンドウの座標は次のように計算されます。 :: x = 30 + 640 * 50/100 = 350 y = -40 + 960 * 20/100 = 440 .. **SIZE** = :ref:`横サイズ,縦サイズ` --------------------------------------------------- ウィンドウサイズを指定します。 サイズは :ref:`スクリーン` からの割合指定が可能です。 :: display size = size + screen size * ratio/100; .. :: SIZE = 100{50},50{20}; .. この例では、スクリーンサイズが640x960であるならば、実際のウィンドウサイズは次のように計算されます。 :: width = 100 + 640 * 50/100 = 420 height = 50 + 960 * 20/100 = 242 .. .. _WINDOW_PROP_SCREEN: **SCREEN** = :ref:`左上X,左上Y,横サイズ,縦サイズ` --------------------------------------------------------------- スクリーンの位置とサイズを指定します。 ウィンドウは、指定されたスクリーンに沿って大きさや位置が決定されます。 スクリーンを指定しないときは、全画面と同義になります。 :: SCREEN = 0,0,0{100},0{100}; //Same as Full Screen .. 4つのパラメータ全て、割合指定が可能です。 :: STYLE = ANCHOR_CENTER; SCREEN = 0,100,0{100},-50{100}; SIZE = 400,400; .. この例では、下図のようにウィンドウを配置します。 .. image:: images/winprop_screen.png .. セーフエリア ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ノッチ付の端末に対応するためにセーフエリアを基準にSCREENを設定できます。 :: SCREEN = SAFEAREA(0,0,{100},{100}); .. .. _WINDOW_PROP_PRIORITY: **PRIORITY** = 表示プライオリティ ----------------------------------- ウィンドウの表示プライオリティを設定します。 大きいほど、表示優先度が高くなり、手前に表示されます。 :ref:`TEXTURE_ZOFFSET` との違いに気を付けてください。 :: PRIORITY = 32; .. .. _WINDOW_PROP_TEXTURE_ZOFFSET: **TEXTURE_ZOFFSET** = テクスチャID,Zオフセット --------------------------------------------------- 本ウィンドウシステムは、レンダリング最適化のために、同一テクスチャを使っているコントロールは全て単一のメッシュでレンダリングしようとします。 よって、各コントロール間のプライオリティは、あくまでも同一テクスチャを用いているコントロール間の表示優先度になります。 各テクスチャ間の表示優先度を変更するためには、TEXTURE_ZOFFSETを使います。これによって、特定のテクスチャを用いるメッシュの表示優先順位を変更できます。 小さいほど、表示優先度が高くなります。 :: TEXTURE_ZOFFSET = 014_000_00010,-1; //Change to display on front .. **STYLE** = スタイルフラグ0|スタイルフラグ1|..|スタイルフラグn ----------------------------------------------------------------------- .. tabularcolumns:: |p{0.5\linewidth}|p{0.5\linewidth}| +------------------------------------------+-------------------------------------+ |表示位置アンカーフラグ |説明 | +==========================================+=====================================+ |ANCHOR_DEFAULT |アンカー位置を左上に設定 | | | | | | ANCHOR_CENTERと同じ | +------------------------------------------+-------------------------------------+ |ANCHOR_LEFTTOP |アンカー位置を左上に設定 | +------------------------------------------+-------------------------------------+ |ANCHOR_LEFT |アンカー位置を左に設定 | | | | | |縦にはセンタリング | +------------------------------------------+-------------------------------------+ |ANCHOR_LEFTBOTTOM |アンカー位置を左に設定 | | | | | | 縦には下辺を基準に配置 | +------------------------------------------+-------------------------------------+ |ANCHOR_TOP |アンカー位置を上辺に設定 | | | | | |横方向にはセンタリング | +------------------------------------------+-------------------------------------+ |ANCHOR_CENTER |アンカー位置を画面中央にセンタリング | +------------------------------------------+-------------------------------------+ |ANCHOR_BOTTOM |アンカー位置を底辺に設定 | | | | | |横方向にはセンタリング | +------------------------------------------+-------------------------------------+ |ANCHOR_RIGHTTOP |アンカー位置を右上に設定 | +------------------------------------------+-------------------------------------+ |ANCHOR_RIGHT |アンカー位置を右に設定 | | | | | |縦にはセンタリング | +------------------------------------------+-------------------------------------+ |ANCHOR_RIGHTBOTTOM |アンカー位置を右に設定 | | | | | |縦には下辺を基準に配置 | +------------------------------------------+-------------------------------------+ .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-----------------------------------+-----------------------------------------------------------------------+ |ウィンドウ描画優先順位フラグ |説明 | +===================================+=======================================================================+ |TOP |ウィンドウの表示優先度を最大にする。 | | | | | |POPUP、TOPMOSTよりは優先度は低い。 | | | | | |TOP同士では、PRIORITYプロパティに設定されている優先度に従います。 | +-----------------------------------+-----------------------------------------------------------------------+ |POPUP |ウィンドウの表示優先度を最大にします。 | | | | | |TOPより優先され、TOPMOSTよりは優先度は低い。 | | | | | |POPUP同士では、PRIORITYプロパティに設定されている優先度に従う。 | | | | | |ウィンドウ以外をタッチしたとき、自動的にonCloseが呼ばれる。 | +-----------------------------------+-----------------------------------------------------------------------+ |TOPMOST |ウィンドウの表示優先度を最大にする。 | | | | | |TOP、POPUPよりは優先度が高い。 | | | | | |TOPMOST同士では、PRIORITYプロパティに設定されている優先度に従う。 | +-----------------------------------+-----------------------------------------------------------------------+ |NOECLIPSE |ウィンドウが開いたときに他のウィンドウを暗くしない(TOP/POPUP時のみ有効)| +-----------------------------------+-----------------------------------------------------------------------+ .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-----------------------------+--------------------------------------------------------+ |ウィンドウ機能制御用フラグ |説明 | +=============================+========================================================+ |NOCLOSE |クローズボタンを配置しない。 | | | | | |NOTITLEBARが付いているとクローズボタンは配置されない | +-----------------------------+--------------------------------------------------------+ |NOMINIMIZATION |未実装 | +-----------------------------+--------------------------------------------------------+ |NOHELP |未実装 | +-----------------------------+--------------------------------------------------------+ |NOTITLEBAR |タイトルバーを表示しない。 | +-----------------------------+--------------------------------------------------------+ |NOFRAME |フレームを表示しない | +-----------------------------+--------------------------------------------------------+ |DISABLE |機能を奪い、入力を受け付けなくする | +-----------------------------+--------------------------------------------------------+ |DRAG |ドラッグによるウィンドウの移動を許可する | +-----------------------------+--------------------------------------------------------+ |NOACTIVE |アクティブにならない | +-----------------------------+--------------------------------------------------------+ |HIDE |ウィンドウ表示をオフにする | +-----------------------------+--------------------------------------------------------+ |NOBRINGTOTOP |アクティブになった時にプライオリティを自動的にあげない。| +-----------------------------+--------------------------------------------------------+ |OPENBOTTOM |背面にウィンドウを開く | +-----------------------------+--------------------------------------------------------+ :: STYLE = NOTITLEBAR|NOFRAME;