unity学习13:gameobject的组件component以及tag, layer 归类

发布于:2025-02-10 ⋅ 阅读:(62) ⋅ 点赞:(0)

目录

1 gameobject+ component 是unity的基础

1.1 类比

1.2 为什么要这么设计?

2  从空物体开始

2.1 创建2个物体

2.2 给 empty gameobject添加组件

3 各种组件和新建组件

3.1 点击 add component可以添加各种组件

3.2 新建组件

3.3 组件的操作

3.4 特别的点:

4  gameobject 的 tag分类

5  gameobject 的 layer 归属

5.1 layer

5.2 应用举例

6 gameobject的图形化ICON 代表?


1 gameobject+ component 是unity的基础

  • gameobject 是unity里的对象
  • 而component 就是构成对象的各种属性/功能
  • unity里的component比一般意义的更强大,因为gameobject可以就是一个空壳,所以其他内容都是component 决定的,这就是虚拟世界的强大抽象能力吧

1.1 类比

  • gameobject+ component 的关系
  • 就像一般编程语言里的 对象 和 方法吧

1.2 为什么要这么设计?

  • 1 符合面向对象那些思想吧
  • 2 可以进行方法/功能复用,不用反复给每个对象写相同或差不多的方法
  • 3 gameobject  →  component  可以形成一个全组合的效果,很强大
  • 估计还有很多

2  从空物体开始

2.1 创建2个物体

  • 创建2个物体,1个空物体,一个cube ,比较下
  • create empty 只有1个组件componet 就是 transform, 这个是必须有的
  • cube 有很多component,

2.2 给 empty gameobject添加组件

  • 分别添加
  • mesh 
  • mesh render
  • 然后在peoject下创建一个material 默认设置即可,然后拖到mesh render里来
  • 然后就基本和之前创建的正方体一样了

3 各种组件和新建组件

3.1 点击 add component可以添加各种组件

感觉啥都有

  

3.2 新建组件

找不到的可以直接新建

3.3 组件的操作

  • 组件可以 remove 删除
  • move up 
  • move down 下移动
  • 组件可以复制到其他 gameobject
  • 组件,也可以只复制组件的值过去

3.4 特别的点:

  • 1个gameobject 可以有多个相同的 component
  • 如果是创建了新的component ,比如是个C# 脚本,那么component的名字 会决定 C# 脚本里class 的类名,这个过程是自动的
  • 而如果手动修改了外面的 component的名字,需要对应去修改 c#里的class的名字!

4  gameobject 的 tag分类

  • 这个只是分类,打tag后,按tag分来好查找
  • 反过来,根据tag,也方便判断当前 gameobject的类别
  • 还可以自己新建tag
  • 比如player tag
  • 比如enemy tag

5  gameobject 的 layer 归属

5.1 layer

  • 这个layer的选择和新增
  • layer不能无限添加
  • add 只能在系统占用的之后添加

5.2 应用举例

  • 可以是被摄像机等选择性显示里勾选不同的layer
  • 碰撞检测的时候,也可以根据不同layer不同的行为
  •  比如把terrain 设置为ground layer
  •  比如把 其他gameobject 设置为character layer
  •  camera里勾选,cullingmask 勾选掉 character layer, game窗口就看不见这些内容了

6 gameobject的图形化ICON 代表?