[英]Error with getting variable from other script in Unity C#
這是我要從中獲取變量Speed的類的代碼(附帶Player對象)
public class PlayerManager : MonoBehaviour
{
public float Speed;
void Update()
{
InvokeRepeating ("RaiseSpeed", 1.0f, 1.5f);
}
void RaiseSpeed() { Speed += Speed/10; }
}
這是我要使用Speed的類的代碼
public class ScoreManager :MonoBehaviour
{
public Text TextScore;
public PlayerManager _PlayerManager;
private int Score;
void Start()
{
Score = 0;
_PlayerManager = GameObject.Find("Player").GetComponent<PlayerManager>;
//Which is why cause error
}
void LateUpdate()
{
InvokeRepeating("UpdateScoreText", 0.0f, 1.0f);
}
void UpdateScoreText()
{
Score += _PlayerManager.Speed /10;
TextScore.text = "Score: " + Score.ToString()
}
}
錯誤說明:無法將方法組“ GetComponent”轉換為非委托類型“ PlayerManager”。 您是否打算調用該方法?
_PlayerManager = GameObject.Find("Player").GetComponent<GameManager>;
您試圖獲取GameManager而不是PlayerManager
嘗試這個:
_PlayerManager = GameObject.Find("Player").GetComponent<GameManager> as PlayerManager;
更新:
_PlayerManager = GameObject.Find("Player").GetComponent("PlayerManager") as PlayerManager;
其中PlayerManager是對象中組件的名稱,其中PlayerManager腳本是
嘗試更換
_PlayerManager = GameObject.Find("Player").GetComponent<PlayerManager>;
與
_PlayerManager = GameObject.Find("Player").GetComponent<PlayerManager>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.