2017-05-21 4 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에서 알파 값을 리턴 반면 Color 구조체 수식에서 255* 제거, 또는를 사용하여, 0 내지 1 사이의 소수 컬러 값을 사용한다는 사실에 Color32 struct (0부터 255까지의 int 범위를 사용함). Color 구조체와

:

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

Color32 구조체로 :

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