private Color32 flashingColor;
private void Start()
{
StartCoroutine(moraleBarFlashing());
}
private void Update()
{
moraleBar.color = (manager.morale >= 1200) ? flashingColor : Color.white;
}
IEnumerator moraleBarFlashing()
{
while (true)
{
flashingColor = new Color32(204, 153, 255, 255);
yield return new WaitForSeconds(0.0125f);
flashingColor = new Color32(169, 209, 247, 255);
yield return new WaitForSeconds(0.0125f);
flashingColor = Color.blue;
yield return new WaitForSeconds(0.0125f);
flashingColor = new Color32(180, 240, 167, 255);
yield return new WaitForSeconds(0.0125f);
flashingColor = Color.green;
yield return new WaitForSeconds(0.0125f);
flashingColor = new Color32(255, 255, 191, 255);
yield return new WaitForSeconds(0.0125f);
flashingColor = new Color32(255, 223, 190, 255);
yield return new WaitForSeconds(0.0125f);
flashingColor = new Color32(255, 177, 176, 255);
yield return new WaitForSeconds(0.0125f);
}
}
나라면 이렇게 할거임
해당 댓글은 삭제되었습니다.
ㅇㅇ 그게 난데 말만 던지고 어케고치는지 안알려주는거 같아서 코드도 써봄. 화이팅하셈
해당 댓글은 삭제되었습니다.
moraleBar.Color에 값 넣는 곳이 한군데뿐이라 버그있을것 같진 않은데. 혹시 코드 다른곳 어딘가에서 moraleBar.Color에 값 넣고 있는건 아님?
해당 댓글은 삭제되었습니다.
직접 유니티 켜서 테스트 해보니 (manager.morale >= 1200) ? flashingColor : Color.white; 에서 컴파일 에러 나서 (manager.morale >= 1200) ? (Color)flashingColor : Color.white; 로 바꿔야 하는거 말고는 의도대로 잘 되는것 같은데.. 그래도 안되면 몰?루
Color.Lerp 쓰는건 어떰?
개인적으로 쓸때없이 자기혼자 반복적으로 도는걸 별로 안좋아해서 manager.morale 값 변화시키는 함수 만들고 그 안에 변화에 따라서 체크해서 코루틴 키고 껐으면 좋겠음