2017-01-21 4 views
0

UI Imageコンポーネントをクリックして表示されるスプライトを変更したい。UIイメージ要素のスプライトを実行時にアセットフォルダ内のスプライトに変更するにはどうすればよいですか?

たとえば、表示されたスプライトは最初は赤いボックスで、クリックすると緑色のボックスに変更します。

OnMouseDown()イベントではどうすればよいですか?私のスクリプトで現在

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class bbox1 : MonoBehaviour { 

    public static int x=1; 
    Image image; 
    // Use this for initialization 
    void Start() { 

     image = GameObject.Find ("box1").GetComponent<Image>(); 

    } 

    // Update is called once per frame 
    void Update() { 

    } 

    void OnMouseDown() 
    { 
     if (x == 1) { 
      x=2; 
      image.sprite = greenbox; 
     } 
    } 
} 

、私は交換用のスプライト(greenbox)への参照を取得する方法がわからないので、私はimage.spriteでそれを設定することができます。スプライトが私のAssetsフォルダにあります。どうすればロードできますか?

+0

このソリューションをどのようにコード化しようとしましたか?あなたの研究はどのようになったのですか? – Serlite

+0

image = GameObject.Find( "box1")。GetComponent (); –

+0

それは私が試みたものです。それは正しい?私のオブジェクトのスプライトコンポーネントを取得する方法を知っていません –

答えて

1

Imageに表示する新しいスプライトを読み込むには、Resources.Load()メソッドが必要です。

void OnMouseDown() 
{ 
    if (x == 1) { 
     x=2; 
     image.sprite = Resources.Load("Sprites/GreenBox") as Sprite; 
    } 
} 

・ホープ、このことができます:ここでは、あなたのコードでそれを使用する方法のアイデア(のは、あなたのスプライト資産へのパスを言わせては、「スプライト/ greenBoxへ」である)です!ご質問がある場合はお知らせください。

関連する問題