因此,经过相当多的谷歌搜索之后,我想出了一些脚本来根据武器中剩余的弹药量来改变材料的发射(武器侧面的一点反应堆东西)。这样它就可以作为指标。
唯一的问题是,发射颜色只有在达到0时才可见地改变。
我已经玩了一些,但是由于我对C#的经验不足(我或多或少是新手,所以我不确定是什么问题。
这是我的代码,具有相当的剪裁性,因此它每次更新时都删除弹药,而不是在武器射击时删除(为了方便换色,默认情况下弹药设置为51):
public Material reactor;
public float ammo;
Vector4 emit = new Color(0f, 255f, 0f, 1f);
public void Update() {
Renderer renderer = GetComponent<Renderer> ();
reactor.SetColor ("_EmissionColor", emit);
if (ammo >= 1) {
ammo--;
float emitchange = emit.y - 5f;
emit = new Vector4(emit.x, emitchange, emit.z, emit.w);
reactor.SetColor("_EmissionColor", emit);
} else {
Debug.Log("Ammo Empty");
}
}
出于某种原因,它直到emit.y达到0才拒绝显示发射的任何变化,这意味着我没有得到想要的效果。
我希望有人知道该怎么办,谢谢!
((我也将其发布到Unity Answers,但过去24小时一直处于审核状态,所以我想我会去这里,答案显然要容易得多)