実現したいこと
Unity上で2DのSpriteをコードによって変換させたい。
発生している問題・分からないこと
正しくspriteRenderer.spriteに新しいSprite型の変数で定義した画像を代入しているのに、目的のgameobjectのSpriteは変更されていない。
該当のソースコード
C#
1using UnityEngine; 2using System; 3 4public class Test : MonoBehaviour 5{ 6 public Sprite image1; // 画像1 7 public Sprite image2; // 画像2 8 private SpriteRenderer spriteRenderer; 9 private bool isImage1 = true; // 画像1が表示されているかどうか 10 11 void Start() 12 { 13 spriteRenderer = GetComponent<SpriteRenderer>(); 14 if (spriteRenderer == null) 15 { 16 Debug.LogError("SpriteRendererが取得できませんでした。"); 17 } 18 } 19 20 void Update() 21 { 22 if (Input.GetKeyDown(KeyCode.A)) 23 { 24 isImage1 = !isImage1; // 画像を切り替え 25 UpdateImage(); // 画像を更新 26 } 27 } 28 29 void UpdateImage() 30 { 31 if (isImage1) 32 { 33 spriteRenderer.sprite = image1; // 画像1に切り替え 34 } 35 else 36 { 37 spriteRenderer.sprite = image2; // 画像2に切り替え 38 } 39 } 40}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Spriteの設定も、SpriteRendererの取得も問題ありません。Sprite自体の詳細設定(テクスチャなど)も問題なくspriteRenderer.spriteの値が変化しているかどうかも変化していたらTrueを返すIF文によって確認済み。
しかし、なぜかgameobjectにコンポーネントしてあるSpriteRendererのSpriteは変化しません。
助けてください。。。
補足
特になし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。