zoukankan      html  css  js  c++  java
  • 第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类型的对象)

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

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

  • 相关阅读:
    Java 单测 回滚
    Java四种线程池的使用
    git gc
    Git 常用命令
    JPA 批量新增
    SpringData JPA 排除 扫描 exclude-filter 不能使用解决
    开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    深入浅出 RPC
    阿里 Java面试 知识点
    Eclipse Egit 安装
  • 原文地址:https://www.cnblogs.com/yifengs/p/14141073.html
Copyright © 2011-2022 走看看