unity3d - 字符变为纯黑色而不是恢复为原始字符
问题描述
字符变为透明,直到计时器结束,然后变为纯黑色,而不是弹回原始颜色。
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);
}
解决方案
这段代码对我有用,我不确定您如何访问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;
}
推荐阅读
- php - 无法使用 curl 将 json 发布到端点
- html - 如何在 ::before 容器中使用 ::after div?
- postgresql - Heroku Postgres 备份
- delphi - 有没有一种快速的方法来找出 Embarcadero 单元是在哪个运行时包中实现的?
- sql - 有没有办法查询引用先前期间结果列的表?
- javascript - 仅当对象 2 中的 id 存在于纯 Javascript 中的对象 1 中时才合并两个对象
- date - RxSwift 从字符串转换后按日期排序
- postgresql - PostgreSQL vs Kubernetes 性能问题
- django - 为什么 celery 可以使用“--concurrency 1 -P solo”而不是没有?
- javascript - 无法在 p5.js 中获取麦克风输入