2017-05-21 24 views
0

私は、コルーチン用のUnityドキュメントにある例に似たものを得ようとしています。私たちはそのアルファ値を更新したときの例では、画像が退色鈍化している:コルーチン中に画像の色が更新されない

IEnumerator Fade() { 
    for (float f = 1f; f >= 0; f -= 0.1f) { 
     Color c = renderer.material.color; 
     c.a = f; 
     renderer.material.color = c; 
     yield return null; 
    } 
} 

ここに私のコードはQTE_ImageがImage成分であるとともに、です。

while (!QTE_Finished) { 
    Color temp_Color = QTE_Image.color; 
    temp_Color.a = (255/(QTE_MultiplierMax - QTE_MultiplierMin))*QTE_Multiplier - (255/((QTE_MultiplierMax/QTE_MultiplierMin)-1)); 
    Debug.Log (temp_Color.a); 
    QTE_Image.color = temp_Color; 
    yield return null; 
} 

あなたが見ることができるように、私は次のアルファ値を計算する式を使用している、(式が機能している、Debug.Log (temp_Color.a)は期待値を返しています)。ただし、イメージはwhileループの最後まで更新されません。

+0

あなたは[画像](https://docs.unity3d.com/ScriptReference/UIを意味します。 Image.html)コンポーネント、右か?その場合は、使用している言語にもタグを付けてください。誰がどちらを知っているかわかりません。また、時間の経過とともに画像アルファを1から0にフェードアウトさせたいだけですか? – Programmer

+0

あなたのコメントを読んで問題を認識しました。アルファ値は0から255になりましたが、0から1になるはずです。 –

+0

ニース。それが私があなたが正しいことを確かめることを望んでいたものです。私はそれが今修正されたことを望む。もしあなたがコメントして私に知らせることができます。 – Programmer

答えて

0

問題は数式が数式から255*を削除する、または使用0から255

にアルファ値を返し、一方Color構造体は、0から1までの小数のカラー値を使用するという事実でありますColor32 struct(0から255の範囲のintを使用します)。 Color32構造体で

temp_Color.a = (QTE_Multiplier - QTE_MultiplierMin)/(QTE_MultiplierMax - QTE_MultiplierMin);

Color構造体で

temp_Color.a = (int) (255 * (QTE_Multiplier - QTE_MultiplierMin)/(QTE_MultiplierMax - QTE_MultiplierMin));

関連する問題