私は新しいゲームの作業を開始しました。スプライトシートから、私が与えた文字または数字に応じて変更する文字を作成したいと思います。私はそれをテストするためにPhotoshopに数字だけのスプライトシートを作成し、それをSpriteとしてUnityにインポートしました。その後、私はこれをしなかったスクリプトで:C#Unity - スプライトシートからスプライトを変更する
public string currLetter;
public string lettersName;
Sprite[] lettersAll;
void Awake() {
lettersAll = Resources.LoadAll<Sprite> ("Textures/" + lettersName);
}
void Update() {
switch (currLetter) {
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[0];
break;
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[1];
break;
}
}
私はそれは、例えば、数1のためだ場合、それは配列のインデックスが範囲外であることを言うと、私はlettersAllを設定するswitch文のエラーを取得していますそれには0スプライトがありました。私は間違って何をしていますか?私は一日中、この問題を解決しようとしているが、何もうまくいかない:/
更新:スプライトシートの
画像:
'Resources.LoadAll'が失敗しているようです。あなたは 'Resources.LoadAll'関数の下で' Debug.Log(lettersAll .Length); 'を実行することでこれを証明できます。そのログの告発を私に知らせてください。また、どのディレクトリにテクスチャを配置しましたか?また、テクスチャを選択し、そのためのインポート設定の画像を配置します。 – Programmer
テクスチャフォルダはProjects/Project Name/Assets /にあり、インポート設定はスプライトに変更しスプライトモードを複数に設定するので、他のすべての文字をカットできます –