gpt4 book ai didi

c# - "new Camera camera"这个词在Unity3d中有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:43 28 4
gpt4 key购买 nike

我在浏览相机脚本时遇到了声明术语

new Camera camera;

我想知道这是做什么的。它是在创建一个实例吗?让我感到困惑的是脚本已经附加到 Inspector 中的相机对象。那么为什么需要创建一个相机实例呢?它在类之上定义但未分配给任何变量。那么它在 Unity3d 中到底做了什么?

上述声明的任何特定用例?

最佳答案

此功能称为 "new Modifier" .

您需要了解 camera 发生了什么Unity 中的变量:

camera 中声明了变量名“Component” .当您的脚本来自 MonoBehaviour 时源自 Behaviour 最终派生自 Component , 你将继承这个 camera多变的。 camera变量让您访问 Camera 此脚本附加到此 GameObject 的组件。

问题是 camera变量现已弃用,Unity 现在希望您使用 GetComponent<Camera>()得到Camera附加到此游戏对象的组件。即使它已被弃用,它仍然存在。它没有被删除。它被简单地标记为已弃用 Obsolete属性。您不能声明名为“camera”的变量。

例如,你不能这样做:

Camera camera;

如果这样做,您将收到以下令人讨厌的警告:

Severity Code Description Project File Line Suppression State Warning CS0108 'ScriptName.camera' hides inherited member 'Component.camera'. Use the new keyword if hiding was intended.

通过使用 new关键字来声明一个名为 camera 的变量:

new Camera camera;

它将隐藏基类的属性并删除那个烦人的警告

关于c# - "new Camera camera"这个词在Unity3d中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51441908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com