Персонаж становится черным вместо того, чтобы вернуться к оригиналу - PullRequest
0 голосов
/ 25 января 2019

Символ становится прозрачным до тех пор, пока не закончится таймер, затем вместо того, чтобы вернуться к исходному цвету, он становится черным.

    private Color c;

    void Start(){
    c = thePlayer.rend.color;
    }

public void HurtPlayer(int damageToTake)
    {
        healthCount -= damageToTake;
        UpdateHeartMeter ();
        StartCoroutine ("iFrames");
    }

    IEnumerator iFrames(){
            Physics2D.IgnoreLayerCollision (10, 11, true);
            c.a = 0.5f;
            thePlayer.rend.color = c;
            yield return new WaitForSeconds (2f);
            c.a = 1f;
            thePlayer.rend.color = c;
            Physics2D.IgnoreLayerCollision (10, 11, false);
    }

Пример: https://imgur.com/a/jFKXvhW

1 Ответ

0 голосов
/ 25 января 2019

Этот фрагмент кода работает для меня, я не уверен, как вы можете получить доступ к проблеме SpriteRenderer.Я только начал сопрограмму с нажатием кнопки, так как я не знаю, когда вы примените это.Этот код прикреплен к Sprite.

private Color c;
// Use this for initialization
void Start () {
    c = gameObject.GetComponent<SpriteRenderer>().color;
}

// Update is called once per frame
void Update () {
    if(Input.GetKeyDown(KeyCode.Mouse0))
    {
        StartCoroutine("ChangeColor");
    }
}
IEnumerator ChangeColor()
{
    c.a = 0.5f;
    gameObject.GetComponent<SpriteRenderer>().color = c;
    yield return new WaitForSeconds(2);
    c.a = 1f;
    gameObject.GetComponent<SpriteRenderer>().color = c;
}
...