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