我希望在对象每次点击时增加Alpha通道。但我不能使用我的Alpha变量,因为integer
和color32
需要字节值。我知道color
,它是浮动的,但它对我不起作用,我需要color32
。我怎样才能做到这一点?
void OnCollisionEnter2D (Collision2D col) {
Alpha += 255 / maxHits;
currentHit++;
gameObject.GetComponent<SpriteRenderer> ().color = new Color32(159,86,86,Alpha);
if (currentHit == maxHits) {
Destroy (gameObject);
}
}
答案 0 :(得分:1)
确保Alpha是浮点数。试试这个:
float Alpha = 0;
void OnCollisionEnter2D (Collision2D col) {
Alpha += 1f / maxHits;
currentHit++;
gameObject.GetComponent<SpriteRenderer> ().color = new Color(159f/255,86f/255,86f/255,Alpha);
if (currentHit == maxHits) {
Destroy (gameObject);
}
}
答案 1 :(得分:0)
非常有意义的是,你只能插入一个byte
的alpha值,即0到255之间。这是因为使用的颜色系统(24位RGBA)每个颜色通道恰好有8位/ 1字节。尝试插入高于255或低于0的值是没有意义的。
如果您可以确保Alpha
变量的有意义值介于0到255之间,只需将(byte)
放在前面,或直接声明Alpha
即可将其强制转换为字节。属于byte
类型。就是这样。