__组件__是游戏中对象和行为的基本要素。它们是每个__游戏对象__的功能单元。如果还不了解组件和游戏对象之间的关系,请在继续之前阅读游戏对象页面。
游戏对象是许多不同组件的容器。默认情况下,所有游戏对象都自动拥有__变换__组件。这是因为变换组件可指示游戏对象的位置以及是如何旋转和缩放的。如果没有变换组件,游戏对象将在世界中没有位置。现在请尝试创建一个空游戏对象作为示例。单击 GameObject > Create Empty 菜单项。选择新的游戏对象,然后在 Inspector 窗口中进行查看。
请记住,随时都可以使用 Inspector 查看有哪些组件附加到选定的游戏对象。随着组件的添加和删除,Inspector 将始终显示当前附加的组件。应使用 Inspector 更改所有组件(包括脚本)的所有属性。
可通过 Components 菜单将组件添加到选定的游戏对象。我们现在通过在刚创建的空游戏对象上添加__刚体 (Rigidbody)__ 来尝试该操作。选择该游戏对象,然后从菜单中选择 Component > Physics > Rigidbody。执行此操作时,您将看到刚体的属性出现在 Inspector 中。如果在仍然选中空游戏对象时按 __Play__,您可能会感到有点意外。尝试一下该操作,注意刚体为空游戏对象带来了什么功能。(游戏对象变换组件的 Y 位置开始减小。这是因为 Unity 中的物理引擎使游戏对象在重力作用下坠落。)
另一种选择是使用__组件浏览器 (Component Browser),可以使用对象的 Inspector 中的 Add Component__ 按钮来激活它。
浏览器允许按类别方便地导航组件,还有一个搜索框可用于按名称查找组件。
可以将任意数量的组件或组件的组合附加到单个游戏对象。某些组件与其他组件结合使用效果最佳。例如,刚体可与任何碰撞体 (Collider) 配合使用。刚体通过 NVIDIA PhysX 物理引擎来控制变换组件,而碰撞体允许刚体与其他碰撞体碰撞和交互。
如果想了解有关使用特定组件的更多信息,可以在相关的组件参考页面中了解该组件。还可以通过单击 Inspector 中的组件标题上的小 ? 号来访问 Unity 组件的参考页面。
组件的一个重要优点是灵活性。将组件附加到游戏对象时,组件中有不同的值或 属性__,可以在构建游戏时在 Editor 中对它们进行调整,也可以在运行游戏时通过脚本进行调整。有两种主要类型的属性:__值__和__引用。
请查看下图。该空游戏对象带有一个__音频源 (Audio Source)__ 组件。在 Inspector 中,__Audio Source__ 的所有值都是默认值。
此组件包含一个引用属性和七个值属性。Audio Clip 是引用属性。当此音频源开始播放时,它将尝试播放 Audio Clip 属性中引用的音频文件。如果未进行引用,则会发生错误,因为没有可播放的音频。必须在 Inspector 中引用该文件。这很简单,只需将音频文件从 Project 视图拖动到该引用属性上或使用对象选择器 (Object Selector) 即可。
组件可以包含对任何其他类型的组件、游戏对象或资源的引用。如需了解有关分配引用的更多信息,请参阅关于编辑属性的页面。
Audio Clip 上的其余属性都是值属性。可以在 Inspector 中直接调整这些属性。Audio Clip 上的值属性都是开关、数值、下拉字段,但值属性也可以是文本字符串、颜色、曲线和其他类型。如需了解与此相关的更多信息以及如何编辑值属性,请参阅关于编辑值属性的页面。
组件的上下文菜单包含许多有用的命令。
通过 Inspector 中的组件面板右上角的“齿轮”图标也可以使用相同的命令。
此命令将恢复组件属性在最近编辑会话之前所具有的值。
如果不再需要附加到游戏对象的组件,可使用 Remove Component 命令。请注意,某些组合的组件相互依赖(例如,铰链关节仅在附加了刚体时才起作用);如果尝试删除其他组件依赖的组件,则会显示一条警告消息。
使用 Move Up 和 Move Down 命令可以在 Inspector 中重新排列游戏对象组件的顺序。
提示:或者,也可以在 Inspector 窗口中单击组件的名称并向上或向下拖动,然后将其放下。
Copy Component 命令可存储组件的类型和当前属性设置。然后可以使用 Paste Component Values 将它们粘贴到相同类型的另一个组件中。还可以使用 Paste Component As New 在对象上创建具有复制值的新组件
当游戏处于__播放模式__时,可以在任何游戏对象的 Inspector 中自由更改属性。例如,有时可能希望尝试不同的跳跃高度。如果在脚本中创建了 Jump Height 属性,可以进入播放模式,更改属性的值,然后按 Jump 按钮查看发生的情况。接着,无需退出播放模式,可以再次更改该值,并在几秒钟内即可查看结果。退出播放模式时,属性将恢复为播放模式之前的值,因此不会丢失任何工作。此工作流程提供了测试、调整和优化游戏的强大功能,而无需在迭代周期中投入大量时间。请在播放模式下使用任何属性进行此尝试。我们相信这会给您留下深刻印象。
2018–09–18 页面已修订并只进行了有限的编辑审查
在 5.6 版本中添加了在 Inspector 窗口中拖放组件的功能
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.