3DUI

3DUIを利用するためには従来の初期化の他、以下の初期化が必要になります。


	// 3DUIの初期化.
	YUIMgr.Init3DCamera( MAIN_CAMERA, SCALE );

各引数の意味は以下の通りです。
SCALEは(UIに設定した仮想サイズ)* SCALE がUnity上の座標値になります。
例)100*100のウィンドウでSCALEが(0.01,0.01)ならば、Unity上の座標で1*1のサイズになる。

引数意味
MAIN_CAMERA UIを表示する対象のカメラ
SCALE 3D空間のUIスケール

生成方法の違い

生成方法は通常のUIとほぼ同じですが以下の項目が異なります。
Anchorは指定しないで下さい、意図通りの位置に表示されません。
子となるWidgetは通常どおり作成できます。

特記事項内容
SetRect3D 描画位置・サイズを3D座標で設定します
SetCanvas YUI.E_CANVAS.UI3Dを指定してください
SetBillboard 3DUIをビルボードにするか指定します
※現時点ではXY軸両方回転し、仕様変更の可能性があります。

生成方法と特徴

下記の例では、3D座標の原点にアイコンを表示します。
スケールが0.01、サイズが400のため描画サイズはUnityサイズで4*4です。
※Scale=4.0のCubeと同じ大きさ


	// カメラの初期化、シーンに一度で良い.
	Camera rMainCam = GameObject.Find("Main Camera").GetComponent<Camera>();
	YUIMgr.Init3DCamera( rMainCam, new Vector3( 0.01f, 0.01f, 1.0f ) );

	// リソースの準備.
	YUIAsync rAsync		= YUI.GetSpriteAsync( YUI.E_SPRITE.YUIMGR_ICON );

	// 3DUIの生成.
	YUI_INFO_SPRITE rInfo = new YUI_INFO_SPRITE();
	rInfo.SetPivot( YUI.E_PIVOT.CENTER );
	rInfo.SetRect3D( Vector3.zero, new Vector2( 400, 400 ) );
	rInfo.SetCanvas( YUI.E_CANVAS.UI3D );
	rInfo.BACK_BLOCK.SetSprite( rAsync, YUI.E_FILL_TYPE.SLICED );
	YUIMgr.Create<YUI_SPRITE>( rInfo );

生成結果

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