Unity全面入门笔记9-了解组件

组件

Inspector

  • Component和GameObject

组件(Component)是最终继承自MonoBehaviour的类的总称。组件实例必须附加在一个GameObject上才能发挥作用。在将脚本从Project面板中拖动到GameObject的Inspector面板中时,我们就将这个组件的一个实例附加到了GameObject上。在此之前我们已经成功将几个组件附加到GameObject上了。

注:一个cs文件中不一定只有一个类,如果同一个文件中存在多个继承自MonoBehaviour的类,将这个文件拖动到Inspector面板后,附加的将是类名和文件名相同的类。如果cs文件中没有一个类的类名和文件名相同,则不能使用拖动的方法把脚本附加到GameObject上。

除了拖动的方法外,还可以点击Inspector面板中的AddComponent按钮来添加组件。可以在下拉菜单中搜索和寻找想要的官方组件或自定义组件,同时也可以在Scripts子菜单中找到你自定义的所有组件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHAldG4J-1569681936596)(C:\Users\UPiracy\AppData\Roaming\Typora\typora-user-images\1568447952100.png)]

一个GameObject可以附加多个组件,也可以重复附加同一个组件(虽然这么做很蠢)。无论通过何种方式创造的GameObject,都一定存在Transform组件,你也没有任何方法删除Transform组件。

  • 对组件的操作

在Inspector中点击组件右上角的齿轮按钮可以打开组件工具菜单。你还可以自定义对组件的操作,关于自定义编译器的内容将在未来详解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17Jmnzon-1569681936598)(C:\Users\UPiracy\AppData\Roaming\Typora\typora-user-images\1568449108839.png)]

Reset:重置这个组件为默认值,默认值可能是在脚本中赋的初值,如果为该组件制作过Preset的话,就会重置为Preset中的值。

Move to Front、Move to Back:调整组件在Inspector面板中的位置。

Remove Component:从这个GameObject上删除这个组件。

Move Up、Move Down:调整组件在Inspector面板中的位置。

Copy Component:复制这个组件,存入剪贴板。

Paste Component As New:如果你复制了一个组件,再选定你的目标GameObject,通过任意一个组件打开组件工具菜单,使用Paste Component As New可以将复制的组件黏贴到该物体上。

Paste Component Values:如果你复制了一个组件,再选定你的目标GameObject,通过一个同类的组件打开组件工具菜单,使用Paste Component Values可以将复制的组件黏贴并覆盖选定的组件。

小技巧:在试玩模式下对组件进行的修改是不会被保存的,退出试玩模式后就会丢失。如果您在试玩模式下修改了组件的配置,又想让配置在离开试玩模式时保存,可以在试玩模式下复制修改后的组件,然后在退出试玩模式后使用Paste Component Values将组件的配置更新。

Find References In Scene:查看引用情况。对材质、脚本或shader使用这个命令,搜索命令会显示到Hierarchy面板的搜索框里,Scene中显示为黑白的为不使用这个脚本的物体,显示为彩色的为附加了这个脚本的物体,Hierarchy窗口中将只显示使用此项目的物体的名称。如果想恢复原貌,清空搜索框中的内容即可。

Edit Script:使用Visual Studio打开这个脚本。

Preset

  • 创建和使用Preset

Preset可以将一个组件的信息序列化的保存起来,并用于快速的分配保存好的组件。

下图中的按键就是Preset按键。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vEbo9fHP-1569681936598)(C:\Users\UPiracy\AppData\Roaming\Typora\typora-user-images\1568472547710.png)]

点击Preset图标后弹出一个Select Preset的窗口,我们可以点击Save current to按钮将选中的组件保存为Preset,也可以在窗口内双击选择使用已经保存过的Preset。

我们还可以从Project面板中拖动设置好的Preset到GameObject上,以此将Preset的组件附加到目标GameObject上,如果目标GameObject上已有同名组件,则Preset会覆盖它。

在Project面板中选中Preset,可以在Inspector面板中修改它的属性。

  • 设置默认Preset

通过设置默认Preset,我们可以预设新附加的同类组件(在引擎内附加的或通过脚本动态附加的)的属性。

选中Preset文件,在Inspector面板中点击"Set as [组件类型] Default"即可将其设置为默认,如下图中的Camera Preset。将另一个同类组件的Preset设置为默认会覆盖原来的默认设置。如果想取消默认可以点击Preset中的"Remove from [组件类型] Default"按钮就可以了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L3MUstRy-1569681936599)(C:\Users\UPiracy\AppData\Roaming\Typora\typora-user-images\1568473199908.png)]

注:Preset和Prefab不同,以Prefab为模板创造的GameObject会在Prefab被修改时同步,而以Preset为模板创造的Component则不会在Preset被修改时同步。

还可以通过菜单栏"Edit"->“Project Settings”->"Preset Manager"打开Preset管理器,管理所有类型的Preset。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Zlnvpn0-1569681936600)(C:\Users\UPiracy\AppData\Roaming\Typora\typora-user-images\1568473546116.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章