簡體   English   中英

從Unity C#中的其他腳本獲取變量時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM