我有一个问题,可能来自我的经验不足,我想添加一个带有两个按钮的升级菜单。如果你点击第一个按钮,hp得到提升,然后我想让它自己禁用,但这是另一个故事。第二个按钮也是如此,但这次它会增加伤害。代码是我的UpgradeMenuUI,它位于GUI元素GmaeOBject下,如下所示。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UpgradeMenuUI : MonoBehaviour {
private Stats stats;
private DamageScript dmg;
public void HpUpgrade()
{
line 16 error// stats.maxVal += 20;
}
public void DmgUpgrade()
{
same error for this button// dmg.playerDamage += 10;
}
}
在我的DamageScript脚本中,存在公共int玩家损坏; ,我在这里访问,为了健康,它来自Stats脚本,我将它与UI健康栏链接:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
[Serializable]
public class Stats
{
[SerializeField]
private BarScript bar;
public float maxVal;
public float currentVal;
public float CurrentVal
{
get
{
return currentVal;
}
set
{
this.currentVal = Mathf.Clamp(value, 0, maxVal);
bar.Value = currentVal;
}
}
public float MaxVal
{
get
{
return maxVal;
}
set
{
this.maxVal = value;
bar.MaxValue = value;
}
}
public void Initialize()
{
this.MaxVal = maxVal;
this.CurrentVal = currentVal;
}
}
我想要的只是当我点击按钮时相应的单位进行改进。我通过OnClick为每个按钮添加空白,但是当我按下我的两个按钮时,我收到此错误:
NullReferenceException:未将对象引用设置为对象的实例 UpgradeMenuUI.HpUpgrade()(在Assets / Scripts / Level1 / UpgradeMenuUI.cs:16) UnityEngine.Events.InvokableCall.Invoke(System.Object [] args)(at
真的很长,这是第一部分。
有什么想法吗? 谢谢!