什么是 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")
我是游戏开发和 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")