HappyTrigge開発ブログ・ゲーム制作

ゲーム制作団体HappyTrigger(ハッピートリガー)のゲーム制作記録です。同人ゲームやインディーズゲームの制作に関して書いていきます。

【開発】SpriteRendererでα値変更が出来ない

      2016/04/17

スクリプトで呼び出した画像(プレハブ)をスクリプトで透明度変化させてUI作ろうとしたら出来なかったって話。

コードはこんな感じ。

public SpriteRenderer UI_test;    //スクリプトで画像を設置するための変数
public float Alpha;                //画像のα値を変更する変数

void Start () 
{
    Alpha = 0.5f;
    UI_test.GetComponent<SpriteRenderer> ().color = new Color (1f, 1f, 1f, Alpha);
    Instantiate (this.UI_test, new Vector2 (0f, 0f), Quaternion.identity);

    Debug.Log ("Alpha値変更:" +Alpha);
    Debug.Log ("STARTでの計測" +UI_test.GetComponent<SpriteRenderer> ().color);
}

void Update(){

    Alpha = 1f;
    UI_test.GetComponent<SpriteRenderer> ().color = new Color (1f, 1f, 1f, Alpha);
    Debug.Log ("Alpha値変更:" +Alpha);
    Debug.Log ("UPDATEでの計測" +UI_test.GetComponent<SpriteRenderer> ().color);
}

これを実行するとこうなる。
▼画像
スクリーンショット 2015-10-23 02.47.52
コンソールを見る限りではα値は0.5fになっているようだが画面には何も出ない。
次にAlphaの値を変えてみるテスト。

public SpriteRenderer UI_test;    //スクリプトで画像を設置するための変数
public float Alpha;                //画像のα値を変更する変数

void Start () 
{
    Alpha = 0.5f;
    UI_test.GetComponent<SpriteRenderer> ().color = new Color (1f, 1f, 1f, Alpha);
    Instantiate (this.UI_test, new Vector2 (0f, 0f), Quaternion.identity);

    Debug.Log ("Alpha値変更:" +Alpha);
    Debug.Log ("STARTでの計測" +UI_test.GetComponent<SpriteRenderer> ().color);
}

void Update(){

    Alpha = 1f;
    UI_test.GetComponent<SpriteRenderer> ().color = new Color (1f, 1f, 1f, Alpha);
    Debug.Log ("Alpha値変更:" +Alpha);
    Debug.Log ("UPDATEでの計測" +UI_test.GetComponent<SpriteRenderer> ().color);
}

コレを実行するとこうなった。

▼画像
スクリーンショット 2015-10-23 02.49.58

そんなばかな……
じゃあこれではどうだ?

public SpriteRenderer UI_test;    //スクリプトで画像を設置するための変数
public float Alpha;                //画像のα値を変更する変数

void Start () 
{
    Instantiate (this.UI_test, new Vector2 (0f, 0f), Quaternion.identity);
}

void Update()
{
    UI_test.GetComponent<SpriteRenderer> ().color = new Color (1f, 1f, 1f, 1f);
    Debug.Log ("Alpha値変更:" +Alpha);
    Debug.Log ("UPDATEでの計測" +UI_test.GetComponent<SpriteRenderer> ().color);
}

▼画像
スクリーンショット 2015-10-23 02.55.45

これでも反映されない。
考えられることをまとめると
・『Instantiate』を使って画像を生成した後に数値を変えても変化しない
・『UPDATE』の中ではα値は変えられない ←そんなことないはず

いったいどうなってんだこれ……

 - ■開発, 開発:テンタクルガーデン