UI gamObject和UI组件有什么区别?

时间:2015-09-18 15:33:04

标签: unity3d

在菜单中,您可以选择创建新的gameObject或组件,例如按钮。它们似乎都具有相同的属性。

我知道组件可以附加到其他控件上,而gameObjects本身就是完整的对象,但是应该在何时以及为什么使用它们?

深刻的洞察力会有所帮助。

2 个答案:

答案 0 :(得分:1)

  

在菜单中,您可以选择创建新的gameObject或a   例如,按钮的组件。他们俩似乎都一样   属性。

GameObject菜单用于在场景中创建新对象。 “组件”菜单用于向所选场景对象添加组件。例如,如果创建一个Button,则从GameObject菜单创建Button组件或将Button组件添加到空游戏对象时,Button组件的属性没有区别。

  

应该在何时以及何时使用?

通常,创建游戏对象可满足大多数常见用例的需求。我通常只在添加碰撞器或我创建的脚本时使用“组件”菜单。

对于Button,从GameObject菜单创建它也会创建一个Text游戏对象作为Button的子对象。如果要将Button组件添加到现有游戏对象,则不会为您添加子文本游戏对象。要在Button上创建文本,您必须自己创建这个子Text对象。

答案 1 :(得分:1)

我添加了一个示例图片。

它给出了一般解释。

enter image description here

<强>此外

GameObject是指Unity3D中任何和所有对象的术语。在虚幻引擎中,我们称之为对象&#34; Actors或Pawns&#34;。

为了操纵GameObject或具有功能,他们必须拥有&#34;组件&#34;。

所以,让我们想象一下,GameObject只是一个能够接受&#34;组件的容器。喜欢:转换位置数据,UI按钮,音频效果,粒子效果,允许用户交互的代码等。

注意: 当我们添加Unity3D GameObject时,所有GameObjects都会附带某种已附加的Transform组件。在某些情况下,例如,当您添加UI Button GameObject时,它将附带几个已附加的组件。这些预先附加的组件通常需要制作GameObject功能,Unity通过预先附加它们使开发人员的生活更轻松。

你可以创建一个&#34;空游戏对象&#34;它只带有一个变换组件。从那里你可以创建任何类型的自定义对象。如果您想创建自己的UI Button版本,那么您可以通过创建自己的组件来处理外观,交互和事件。

现在,如果我们将其与UI GameObject相关联:

UI GameObject是容纳所有UI组件的容器。

因此,在我的示例图像中,我显示了名为&#34; MenuScreenCanvas&#34;的UI GameObject,我之所以这样命名是因为它包含将其定义为Canvas元素的组件。

接下来,我们看到我突出显示名为&#34; PlayButton&#34;的子UI游戏对象。这个PlayButton UI GameObject附加了几个UI组件,包括:Canvas Renderer,Image(按钮的灰色背景)和Button Script(处理播放器点击/点击屏幕之间的交互)实际的GameObject。

稍微分解一下组件:

组件的范围可以从环境的光数据到音频源及其交互式游戏内提示,也可以是允许UI元素由于用户交互而触发事件的代码。

按钮示例:

使用uGUI GameObjects添加按钮时:

enter image description here

新的按钮GameObject将附带已经附加的组件,方便您快速有效地创建它们。

这是标准按钮GameObject在层次结构中的外观,并且您在检查器中看到的组件从Unity 5.2.0f3开始标准化:

enter image description here

视频链接:从头开始制作标准按钮(仅供学习,因为我们可以......):

https://youtu.be/v7RiUvOG5H4(不确定这是否有帮助,但我希望如此......)。

希望有所帮助。如果您需要更多,请随时问:D