我正在尝试使用附加到第二个游戏对象的其他脚本从附加到游戏对象的脚本调用函数。
这两个游戏对象被称为:玩家,游戏管理器。
播放器有一个名为Gold的脚本,Game Manager有一个名为GameManager的脚本
尝试从GameManager.cs调用Gold.cs中的SetGold()函数,但是我收到错误:NullReferenceException:对象引用未设置为对象的istance
我目前的代码: Gold.cs:
using UnityEngine;
using System.Collections;
public class Gold : MonoBehaviour {
GameManager gm;
public UnityEngine.UI.Text goldDisplay;
private float _gold;
void Start ()
{
gm = GameObject.Find("Game Manager").GetComponent<GameManager>();
gm.Load();
}
void Update ()
{
UpdateGoldDisplay();
}
public void SetGold(float x)
{
_gold = x;
}
public float GetGold()
{
return _gold;
}
public void UpdateGoldDisplay()
{
SetGoldDisplay(GetGold().ToString());
}
public void SetGoldDisplay(string x)
{
goldDisplay.text = x;
}
}
我的其他脚本(GameManager.cs)
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour {
GameObject GO_Player;
Gold gold;
void Start ()
{
GO_Player = GameObject.Find ("Player");
gold = GO_Player.GetComponent<Gold>();
}
void OnApplicationQuiot()
{
Save();
}
public void Load()
{
gold.SetGold(PlayerPrefs.GetFloat("gold", 50));
}
private void Save()
{
PlayerPrefs.SetFloat("gold", 1);
}
public void DeleteSaves()
{
PlayerPrefs.SetFloat("gold", 0);
}
}
先谢谢。