2016-10-24 11 views
0

私は2つのイメージを持っています:1つは輝くボーダーと1つありません。私は光り輝くイメージをフェードアウトさせることで光るイメージの効果を作りたいと思っています。私のコード:(。時間をかけてゆっくりと変化)Unity3Dのイメージのアルファ値を変更して光輝効果を作成する

private Image lightImage; 
private float alpha; 

// Use this for initialization 
void Start() 
{ 

lightImage = GetComponent<Image>(); 
alpha = Time.deltaTime * 10; 

} 

void FixedUpdate() 
{ 

// fade to transparent over 500ms. 
lightImage.CrossFadeAlpha(0.0f, alpha, false); 
// and back over 500ms. 
lightImage.CrossFadeAlpha(1.0f, alpha, false); 
} 

私は私が望むようにそれが動作するように見えることはできませんそれはすぐにと出て点滅が、それは望ましい効果ではありません。

答えて

1
  1. 置き換え:alpha = 0.5f;alpha = Time.deltaTime * 10;そして、私はあなたがdurationalpha変数の名前を変更すべきだと思う 。
  2. FixedUpdate()CrossFadeAlphaを入れる必要はありません。トゥイーンは です。複数のフレームにわたって実行する必要はありません。 Start()に入れてください。
  3. alphaを絶対値0に設定するのは良いことではない場合もあります。 Unityは0個のアルファオブジェクトを0個のオブジェクトとして扱いますが、私は ではありません。この問題が発生した場合は、アルファベットを0にした の値に設定してください(例:0.004f)。
  4. あなたはそれはあなたがそれをこのような を行う必要があり、中に、その後フェードフェードアウトしたい場合:

    IEnumerator Fade() { 
        // fade to transparent over 500ms. 
        lightImage.CrossFadeAlpha(0.004f, 0.5f, false); 
    
        // Wait for 500ms 
        yield return new WaitForSeconds(0.5f); 
    
        // and back over 500ms. 
        lightImage.CrossFadeAlpha(1.0f, 0.5f, false); 
    } 
    
    void Start() { 
        StartCoroutine(Fade()); 
    } 
    
関連する問題