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】:

我很高兴您的脚本被称为 CarScriptZmult 是您尝试访问的字段,所以它应该是

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#:来自另一个游戏对象的数据的主要内容,如果未能解决你的问题,请参考以下文章

统一将预制件设置为另一个游戏对象的子对象

来自另一个视图控制器时的 xcode 问题

使用 NSPredicate 来判断 NSSet 是不是包含来自另一个 NSSet 的对象 [重复]

如何在统一的每个按键上重复动画(Unity3d,C#)

房间数据库的类型转换器不适用于具有来自另一个类的对象的类

当一个对象在hololens中的另一个对象内部时如何选择内部游戏对象?