什么是 Unity 中的铸造?

What is Casting in Unity?

我是游戏开发和 C# 的初学者。我对编程有一些了解。我正在学习教程。我在理解下面这句话时遇到了问题。

 GameObject obj = (GameObject)Instantiate(bullet);

为什么我们需要将 "Instantiate(bullet)" 转换为 GameObject ?那不是已经是一个 GameObject 了吗?请解释一下或提供一些链接以了解此信息?谢谢你。 (抱歉我的英语不好)。

如您所见

http://docs.unity3d.com/ScriptReference/Object.Instantiate.html

实例化returns一个对象。 Object 不是 GameObject,所以你必须投射。

还有一种强制转换方式,强制转换失败不抛出异常。 你可以在这里阅读

C# "as" cast vs classic cast

如果不施法,Instantiate 只会实例化游戏对象。它就像 void 函数。

如果您想在同一个脚本中使用该对象,最好使用强制转换来立即获取对象引用,这样您就不必使用 gameobject.Find("xxx")