目录
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窗口就看不见这些内容了