第22天uint基础组件

游戏物体和组件

游戏物体

组件

组件组成游戏物体

Transform组件是游戏物体的必须基本组件

自定义组件

自定义创建的继承MonoBehaviour的C#的脚本文件

自定义组件不能直接实例化去使用

VS加载解决方案失败?

重启VS

声明周期函数

物体(脚本)生命周期

从创建开始,到被删除结束

生命周期函数

概念

是组件或游戏物体的整个生命周期过程中(从创建到销毁),在某种条件下自动执行的函数

在整个生命周期过程中某些条件下自动调用的函数

常用生命周期函数

Awake

在组件唤醒时执行一次,构造时

OnEnable

启用组件时,执行一次,多次启用就执行多次

Start

程序运行的时候调用 只调用一次

FixedUpdate

每固定时间(物理帧率)执行一次

物理帧率:计算与物理相关的频率 默认固定时间调用0.02s

Update

每帧执行一次

渲染帧率:屏幕刷新的频率

LateUpdate

每帧执行一次, 必须所有组件的Update全部执行之后才会调用

OnDisable

禁用组件时,执行一次,多次禁用就执行多次

OnDestroy

销毁组件或销毁游戏物体时执行一次

控制台

Clear:清除控制台信息

Collapse:折叠信息

Clear On Play:运行时清除

Error Pause:遇到错误停止项目

控制台输出

GameObject类

所有的游戏对象都是GameObject

gameobject

是GameObject的具体实例,表示当前所在的组件所挂的游戏物体

name

获取和修改物体的名字

tag

获取或修改物体的标签

自定义标签

选择小“+”号

 点击save

Find(“游戏物体”)

全局查物体

游戏物体名支持层级结构,例如:“Game/Cube”

失活的物体不能被找到

Test是失活状态

    void Start () {
        GameObject g = GameObject.Find("GameObject");
        g.name = "cc";
        GameObject g2 = GameObject.Find("Test");
        g2.name = "TT";
    }
    

结果:

失活状态的差找不到的

注意

比较消耗性能,尽量少用

SetActive(true/false)

激活或失活物体

    void Start () {
        GameObject g = GameObject.Find("Main Camera");
        g.SetActive(false);
    }

快速获取物体

定义公共变量,拖拽获取

选择游戏物体拖拽倒变量的位置

如:

全局查找目标标签的物体

GameObject.FindGameObjectWithTag("Enemy");

GameObject.FindGameObjectsWithTag("Enemy");  返回数组

    void Start () {
        GameObject g = GameObject.FindGameObjectWithTag("En2");
        g.name = "Tag";
        GameObject[] gArr = GameObject.FindGameObjectsWithTag("Enemy");
        for (int i = 0; i < gArr.Length; i++)
        {
            gArr[i].name = "TT" + i;
        }
    }

结果:

Transform

类,组件类型

游戏物体的最基本组件

空间变换组件:描述物体的位置、旋转、大小

transform

Transform类的具体实例,表示当前所在的组件所挂的游戏物体上的transform组件

transform.Find("物体名字")

从当前物体中查找子物体,只能查找一级

游戏物体名支持层级结构,例如:“Game/Cube”

失活的物体可以被找到

查找物体总结

通过GameObject去查找

通过transform去查找

通过GameObject去查找就使用GameObject类型的变量存储,
通过transform去查找就使用Transform类型的变量存储

组件的添加获取删除

添加

游戏物体对象.AddComponent<组件类型>()

哪个游戏物体对象调用AddCompoent就是在哪个游戏物体上添加组件

步骤

1.找到游戏物体

2.通过游戏物体去添加组件

获取

游戏物体对象.GetComponent<组件类型>()

哪个游戏物体对象调用GetCompoent就是在哪个游戏物体上获取组件

删除-Destroy

Destroy(组件对象(变量))

参数是组件:删除组件

参数是物体:删除物体

克隆--Instantiate

Instantiate(GameObject类型的对象)

一个参数:克隆物体,生成在原物体的位置

三个参数:(目标物体,位置,旋转角度)

原文地址:https://www.cnblogs.com/yifengs/p/14141073.html