"新相机相机"Unity3d中的术语是什么?

kil*_*ech 1 c# unity-game-engine

我正在浏览相机脚本并遇到声明术语

new Camera camera;
Run Code Online (Sandbox Code Playgroud)

我想知道这是做什么的.它是在创建一个实例吗?令我困惑的是脚本已经附加到Inspector中的Camera Object.那为什么有必要创建一个相机实例?它在类之上定义,但未分配给任何变量.那究竟它在Unity3d中的作用是什么?

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

Pro*_*mer 7

此功能称为"新修改器".

您需要了解cameraUnity中变量的内容:

camera声明中有变量名" " Component.当您的脚本派生自MonoBehaviour哪个派生自Behaviour哪个派生源时Component,您将继承此camera变量.该camera变量让我们您访问Camera附加到该游戏物体这个脚本是武官组成部分.

问题是camera变量现在已被弃用,Unity现在希望您使用它GetComponent<Camera>()来获取Camera附加到此GameObject 的组件.即使它被弃用,它仍然存在.它尚未被删除.它只是使用Obsolete属性标记为已弃用.您不能使用名称" camera" 声明变量.

例如,你不能这样做:

Camera camera;
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你会得到以下警告:

严重级代码描述项目文件行抑制状态警告CS0108'ScriptName.camera'隐藏继承的成员'Component.camera'.如果要隐藏,请使用new关键字.

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

new Camera camera;
Run Code Online (Sandbox Code Playgroud)

它将隐藏基类的属性,并删除恼人的警告