2番目のゲームオブジェクトにアタッチされている他のスクリプトを使用して、ゲームオブジェクトにアタッチされているスクリプトから関数を呼び出そうとしています。Unityの他のスクリプトから関数を呼び出す
Player、Game Managerという2つのゲームオブジェクトが呼び出されます。
プレーヤーは、ゴールドと呼ばれるスクリプトを持っており、ゲームマネージャが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)
3210ありがとうございました。
'GameManager gm;'を 'gm = new GameManager()'に初期化します。 'gold'オブジェクトに対しても同じことをするか、新しいGameManager()の代わりにコンストラクタ – MethodMan
を作成します。私はgm = gameObject.AddComponentを使用しなければならなかった(); Playを押すと何らかの理由で、同じエラーが2番目に多く発生する:NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていない Gold.SetGoldDisplay(単額)(Assets/Scripts/Player/\ –
@MethodMan 'MonoBehaviour'から継承したクラスで' new' kneywordを使用することはできません。 OPSの現在のコードは正常に見えます。 – Programmer