Skip to content

Unity3D入门级教程10——Component详解 #12

@Veinsvx

Description

@Veinsvx

一、Component(组件)
Component可以为GameObject提供不同的功能。

二、添加组件
如果想要给一个GameObject添加功能,就需要给它添加组件。添加组件有两种方式:手动添加和通过代码添加。
手动添加的流程如下:

  1. 选中一个GameObject
  2. 添加组件有多种方式:
    • 点击Inspector中的Add Component按钮(快捷键Ctrl+Shift+A),选择/搜索添加组件;
    • 从Project中将脚本(脚本是一种自定义组件)拖到GameObject上;
    • 打开菜单栏Component,找到并点击要添加的组件。

三、编辑组件
组件添加到GameObject上以后,会在Inspector中显示。可以修改各个属性的值来达到不同的效果。
属性可以大致分为引用类型(指向其他对象和资源的引用框)或值类型(输入框、复选框、下拉框、滑条、颜色选择器等)。
image

四、引用框
创建一个Cube(立方体)来解释下引用框:
点击Hierarchy窗口左上角的Create按钮,选择3D Object > Cube。这会在场景中创建一个立方体。
image
我们来看一下红框部分的那个属性。可以点击最右侧的小圆圈来选择引用的对象。点击后会弹出Select Mesh选择框,通过滑条可以缩放预览图的大小。可以通过搜索/预览来选择引用对象。
image
但更常见的做法是:将引用对象从Project或Hierarchy中直接拖到引用框中。需要注意的是:如果拖放的类型和引用框的类型不符,会出现拖不上的情况。

五、颜色选择器
颜色选择器让你能快速、方便的修改颜色属性。
点击颜色属性的颜色区域会弹出Color窗口。
image

  • 颜色吸取器:选中后可以在光标位置吸取颜色(只会吸取RGB值,不会吸取alpha透明度),颜色属性框内的颜色也可以实时预览变化,也可以点击Color属性右侧的吸管快捷进入。
  • 颜色对比:Color窗口右上角有旧、新颜色的对比,左侧是原先的颜色,右侧是新调节的颜色。
  • 颜色格式选择:可以选择熟悉的颜色格式,分别是:RGB(0-255),RGB(0-1),HSV
  • 十六进制值:这种格式的颜色值在各个软件之间是通用的,方便复制、粘贴颜色值
  • (Swatches)色板:可以设置、使用常用颜色

六、移除组件
在组件名称上右键,或者点击右上角的设置小按钮,会弹出菜单,点击Remove Component即可移除组件。
image

七、Copy(复制)组件
在组件名称上右键,或者点击右上角的设置小按钮,会弹出菜单,点击Copy Component。
• 在新的GameObject的任一组件名称的右键菜单上点击Paste Component As New,可以在这个GameObject上创建一个新的组件,并将原组件的值一起复制过来。
• 在新的GameObject的同类型组件的右键菜单上点击Paste Component Values,可以将原组件的值复制到这个组件上。

八、Move(移动)组件
某些自定义组件可以通过拖拽的方式在不同的GameObject上移动。但是如果发现无法拖拽移动,那就先复制到新的GameObject上,再把旧的组件删除掉吧。

九、组件的enable(启用)/disable(禁用)
点击组件名称左侧的复选框,可以启动/禁用该组件。禁用后,组件对应的功能也会随之消失,再次启用后恢复功能。
image
有的组件没有这个复选框,比如Transform组件,这是因为只有组件中有Start, Update, FixedUpdate and OnGUI这几个方法中至少一个的时候,enable属性才会生效,复选框才会显示。

十、组件排序
可以通过拖拽组件的方式进行排序,也可以使用组件的菜单排序。
Transform组件只能排在第一个,不能参与排序。

十一、Transform组件
Transform是一个GameObject必须有的组件,创建GameObject就会自动附带,而且不能删除,在Inspector中显示在最上面。
image
它的功能是确定一个GameObject在空间中的位置、缩放和旋转。
Position:位置,分别表示x,y,z轴的坐标
Rotation:旋转,分别表示围绕x,y,z轴的旋转,单位是角度
Scale:缩放,分别表示x,y,z轴方向上的缩放比例。1代表不缩放。
这三个值都是相对于父物体的值,如果没有父物体,就是世界空间(即相对于世界坐标原点)的值。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions