私のUnityプロジェクトでは、キャンバスの下で空白のUI画像を作成しました。 一方、assetsフォルダには複数のPNGがあります。 スクリプトを介してフォルダからUIイメージをランダムPNGに設定します。 どうすればいいですか?スクリプトをUIイメージまたはUIキャンバスに添付する必要がありますか?誰かが私にサンプルスクリプト(js、C#ではなく)を表示してもらえますか?ありがとう。Unity:(js)PNGを資産フォルダにUI画像に読み込む
0
A
答えて
0
Resources
という名前のフォルダとSprites
という名前のフォルダを作成します。あなたのスプライトをこのフォルダに入れてください(@SurajSで指摘されているように、画像は画像インポート設定でSprite
テクスチャタイプでなければなりません)。
画像要素を作成し、以下のUnityScriptを添付:
function Start() {
var image : UnityEngine.UI.Image = GetComponent.<UnityEngine.UI.Image>();
var sprites : Object[] = Resources.LoadAll("Sprites", Sprite);
image.sprite = sprites[Random.Range(0, sprites.Length)] as Sprite;
}
よりよい解決策を(より効率的な)
したいゲームオブジェクト(あなたのイメージ、あなたに次のスクリプトを添付キャンバス、または空の場合もあります)
#pragma strict
public var image : UnityEngine.UI.Image;
public var sprites : Sprite[];
function Start() {
image.sprite = sprites[Random.Range(0, sprites.Length)] ;
}
次に、インスペクタで、& image
フィールドに画像コンポーネントを格納しているゲームオブジェクトをドロップし、すべてのスプライトをsprites
フィールドに配置します。
スプライトの名前を取得するには、次のように行うことができます。
var names : String[] = new String[sprites.Length] ;
for (var i = 0 ; i < names.Length ; ++i) {
names[i] = sprites[i].name;
}
また、PNGのインポート設定は、スプライトやUI 2Dに設定されていることを確認してください。 –
ありがとう、それは働いた!フォローアップの質問:一方で、PNGの名前を含むストリングの配列を作成したいのですが、その方法はありますか? –
更新された回答を確認してください。それがあなたを助けたならば、受け入れることを忘れないでください。 – Hellium