カスタムウィンドウ

生成方法は通常のウィンドウと変わりません。
ウィンドウの子として任意のパーツを並べたウィンドウ自作クラスとなります。

インストール時の /Assets/YUIMgr/Samples/Windows/UITest/Customにいくつかのサンプルが含まれています ので合わせてご参照ください。

以下の例ではCCustomWndクラスを定義し、スプライトとボタンを表示するウィンドウを作成します。

カスタムクラスの定義


	/*
	 *	CCustomWnd
	 */
	using UnityEngine;
	using System.Collections;

	/// 【Sample】カスタムウィンドウ.
	public class CCustomWnd : YUI_WND {

		int ID_BTN			= YUIMgr.GetNewID();

		// 生成処理.
		protected override void LateInit() {

			YUIAsync rAsync	= YUI.GetSpriteAsync( YUI.E_SPRITE.AUTHOR_ICON );

			// アイコン.
			YUI_INFO_SPRITE rInfoSprite = new YUI_INFO_SPRITE( this );
			rInfoSprite.SetRect( 10, 10, 300, 300 );
			rInfoSprite.BACK_BLOCK.SetSprite( rAsync );
			YUIMgr.Create<YUI_SPRITE>( rInfoSprite );

			// ボタン.
			YUI_INFO_BTN rInfoBtn = new YUI_INFO_BTN( ID_BTN, this );
			rInfoBtn.SetRect( 310, 310, 250, 250 );
			YUIMgr.Create( rInfoBtn );
			
			// コマンド登録.
			RegCommand( ID_BTN,		FUNC_BTN );
		}
		
		// ボタンからの通知.
		protected bool FUNC_BTN( int nUniqueID, int nComType, object rParam ) {
			if ( nComType == (int)YUI.E_COMMAND.CLICK ) {
				// クリックされた時の処理をここに.
				return true;
			}
			return false;
		}
	}

生成完了後、基底クラスのLateInit() がコールされます。
本関数をoverrideして、生成後の処理にウィンドウに行いたい処理を追加してください。

生成するWidgetの親にはthis(ウィンドウ本体)を指定します。
これによってウィンドウ内の座標にて各Widgetを配置する事が可能です。

親を指定する事で、親の廃棄時に合わせて廃棄されるようになり また、コマンド通知も親をさかのぼっていくようになります。

カスタムクラスの登録

作成した自作クラスはYUIMgr本体に一度登録する必要があります。
起動後、初期化の時に下記を一度呼び出すようにしてください。


	YUIRsc.RegCustomRsc( typeof( CCustomWnd ), YUIRsc.E_RSC.WND );

第二引数は元になるリソースのタイプを指定します。
自作ウィンドウクラスなのでYUIRsc.E_RSC.WNDを指定していますが 自作テキストクラスであればYUIRsc.E_RSC.TEXTを指定します。

生成方法

基本的に元になるWidgetの生成方法と変わりません。
Create時にカスタムクラスのタイプをセットするようにしてください。


	int ID_CUSTOM = YUIMgr.GetNewID();
	YUI_INFO_WND rInfo = new YUI_INFO_WND( ID_CUSTOM, null );
	rInfo.SetRect( 0, 0, 600, 600 );
	rInfo.SetAnchorPivot( YUI.E_ANCHOR.CENTER, YUI.E_PIVOT.CENTER );
	YUIMgr.Create<CCustomWnd>( rInfo );
	

生成結果

※仮想解像度1280*800の場合