繁体   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