【问题标题】:What is Casting in Unity?什么是 Unity 中的铸造?
【发布时间】:2015-11-16 15:09:54
【问题描述】:

我是游戏开发和 C# 的初学者。我对编程中的铸造有一些了解。我正在关注一个教程。我在理解以下这句话时遇到了问题。

 GameObject obj = (GameObject)Instantiate(bullet);

为什么我们需要将 "Instantiate(bullet)" 转换为 GameObject ?那不是已经是 GameObject 了吗?请解释一下或提供一些链接来了解这一点?谢谢你。 (对不起我的英语不好)。

【问题讨论】:

    标签: c# unity3d casting instantiation


    【解决方案1】:

    你可以在这里阅读

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

    实例化返回一个对象。 Object 不是 GameObject,所以你必须强制转换。

    还有另一种转换方式,如果转换失败不会抛出异常。 你可以在这里阅读它

    C# "as" cast vs classic cast

    【讨论】:

      【解决方案2】:

      如果你不强制转换,Instantiate 只会实例化游戏对象。类似于 void 函数。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多