unity/c#:来自另一个游戏对象的数据
Posted
技术标签:
【中文标题】unity/c#:来自另一个游戏对象的数据【英文标题】:unity/c#: data from another gameobject 【发布时间】:2021-05-26 04:34:06 【问题描述】:我想在我的 Unity 游戏中获得另一个 GameObject 的浮动。 Gameonject 称为“Spawner”,GameObject 上的脚本为“CarZSpawner”,脚本中的浮点数为“mult”。浮点数“每隔几秒就会改变一次。”
我尝试了很多东西,但没有任何效果,我在互联网上找不到任何东西:(
public class TrainScript : MonoBehaviour
void Update()
float test = GameObject.Find("Spawner").GetComponent<CarScriptZ.mult>()
感谢您的帮助:)
【问题讨论】:
您在名为“Spawner”的 GameObject 上的脚本名称为“CarZSpawner”?在您的代码中,您尝试获取名称为“CarScriptZ”的脚本。或者你有一个名为“CarZSpawner”的游戏对象,脚本为“CarScriptZ”?如果是这样,您在错误的 GameObject 中查找脚本。 在任何情况下,您都不应该在更新函数中使用 GameObject.Find。您可以在 Awake 或 Start 函数中创建一个变量并保存对 Spawner 的引用。另外,运行代码时遇到什么错误? 【参考方案1】:我很高兴您的脚本被称为 CarScriptZ
和 mult
是您尝试访问的字段,所以它应该是
float test = GameObject.Find("Spawner").GetComponent<CarScriptZ>().mult;
除此之外,您应该存储参考一次,例如在Start
中,然后像以后一样重新使用它
// If possible already reference this via the Inspector by drag & drop
[SerializeField] private CarScriptZ carScriptZ;
private void Start()
// As fallback get it ONCE on runtime
if(!carScriptZ) carScriptZ = GameObject.Find("Spawner").GetComponent<CarScriptZ>();
private void Update()
float test = carScriptZ.mult;
【讨论】:
以上是关于unity/c#:来自另一个游戏对象的数据的主要内容,如果未能解决你的问题,请参考以下文章