Изменение альфа объекта с помощью скрипта - PullRequest
0 голосов
/ 14 октября 2018

У меня есть враг, и я хочу, чтобы он имел мигающий эффект (когда его ударили), изменяя альфа.

Я не делаю это с использованием анимации, потому что там уже есть какая-то другая анимация.Итак, я изменяю альфа спрайта с помощью скрипта, но он не работает.

Вот скрипт:

 private void OnTriggerEnter2D(Collider2D col)
 {
     if (col.gameObject.tag == "Bullet")
     {
         StartCoroutine("Blinker");
     }
 }

 IEnumerator Blinker()
 {
     GameObject This = this.gameObject;

     Color tmp = This.GetComponent<SpriteRenderer>().color;
     Color tmp2 = This.GetComponent<SpriteRenderer>().color;

     tmp.a = 0f;
     tmp2.a = 1;
     This.GetComponent<SpriteRenderer>().color = tmp;
     yield return new WaitForSeconds(sec);
     This.GetComponent<SpriteRenderer>().color = tmp2;
 }

Вот инспектор объекта, который я меняю:

enter image description here

1 Ответ

0 голосов
/ 14 октября 2018

Я скопировал, вставил ваш код в мой проект и убедился, что он работает как написано.Проблема должна быть связана с конфликтом с одной из ваших анимаций.

Пройдите каждую анимацию в вашем вражеском аниматоре и убедитесь, что SpriteRenderer.color не присутствует ни в одной из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...