Unityで画像を表示するのは
GameObject>UI>Image
で簡単にできます。
ただ必要な画像を全部シーンに置いて行ったら邪魔になるので、C#で動的に作成してみようかなと。ちょっと手間取ったのでメモ。
Unity 5.3使ってます。
まずは器のゲームオブジェクトを作成。引数はオブジェクト名。
GameObject work_image = new GameObject("WorkImage");
作ったゲームオブジェクトをCanvasの子にします。これしないと表示されない。
work_image.transform.parent = GameObject.Find("Canvas").transform;
画像の位置(アンカーポジション)を追加して画面の真ん中にします。
work_image.AddComponent<RectTransform>().anchoredPosition = new Vector3(0, 0, 0);
縮尺がおかしいのでちゃんと等倍にする。
work_image.GetComponent<RectTransform>().localScale = new Vector3(1, 1, 1);
スプライト画像追加。ここではResourcesフォルダにあるcounterファイルから読み込み。ちょっと横着したけど、これ本当はスライスしたスプライトの塊なので、Resources.LoadAll()で中身全部取得してから、counter_0を追加ってやった方が良いね。
work_image.AddComponent<Image>().sprite = Resources.Load<Sprite>("counter");
アスペクト比は元の画像の比率を維持。
work_image.GetComponent<Image>().preserveAspect = true;
画像のサイズを元画像と同じサイズにする。
work_image.GetComponent<Image>().SetNativeSize();