Nanashi-softプログラマ専用Unityでゲーム開発


◇Unityでゲーム開発 -Live2Dを動かしてみたい(16-

予めステージ上に置いておくのでは無く,スクリプトから生成したいと思います

mainクラスの機能をそのままコピーして使用します(新しく作るのメンドイので)
クラスをそのまま使いまわすので,ステージ上に置いた際に手で設定していた mocファイルや,テクスチャファイルをスクリプトから突っ込む必要があります


サンプルが C#なので,そのまま C#で記述します

・制御用クラスファイルを作成する

main.csファイルをコピーして,l2dchara.csファイルを作る
クラス名を l2dcharaに変更する

以降,mainクラスは全体制御を,l2dcharaクラスはオブジェクトに追加するコンポーネントクラスとする

・mainクラスでオブジェクトを生成し,l2dcharaコンポーネントを追加する

mainクラスの Start()メソッドに追加
	//ゲームオブジェクト生成
	GameObject gobj = new GameObject();
	gobj.name = "chara1";

	//l2dcharaコンポーネントクラスを追加
	gobj.AddComponent("l2dchara");
	//追加したクラスを取得
	l2dchara l2dcha = gobj.GetComponent("l2dchara") as l2dchara;

	//リソース上の kayoko.mocファイルと,texture_00テクスチャーをロード
	l2dcha.mocFile = Resources.Load("kayoko.moc") as TextAsset;
	l2dcha.texture = new Texture2D[1];	//変数が配列だったので
	l2dcha.texture[0] = Resources.Load("texture_00") as Texture2D;

テクスチャーが複数毎の時は,newする時にその枚数分作れば良いです
・テクスチャーが3枚ある場合
	l2dcha.texture = new Texture2D[3];
	l2dcha.texture[0] = Resources.Load("texture_00") as Texture2D;
	l2dcha.texture[1] = Resources.Load("texture_01") as Texture2D;
	l2dcha.texture[2] = Resources.Load("texture_02") as Texture2D;

これで描画されますので,後は Transformを触って位置などを調整すれば完了です
gobj.transform.localPosition = new Vector3(1.0f, 2.5f, 0.0f);
gobj.transform.localScale = new Vector3(1.5f, 1.5f, 1.0f);
※Z軸はありませんので,デフォルト値を適当に入れているだけです
※回転は,左上を基点として可能です



TOPプログラマ専用Unityでゲーム開発

Melonbooks DL