第三章 Unity基础之API

本文详细介绍了Unity游戏引擎的基础API,涵盖控制台输出、事件函数(生命周期函数)、游戏物体、组件、向量、输入系统、消息类、动画、时间、数学方法等多个方面,帮助开发者理解Unity开发中的关键概念和函数用法。
摘要由CSDN通过智能技术生成
  • 目录

    一、 控制台输出

    1. Debug.Log("String")

    2. Debug.LogWarning("String")

    3. Debug.LogError("String")

    二、 事件函数(生命周期函数)

    1. 赋值顺序

    2. Reset()

    3. Awake()

    4. OnEnable()

    5. Start()

    6. Update()

    7. LateUpdate()

    8. OnDisable()

    9. OnApplicatoinQuit()

    10. OnDestroy()

    三、 游戏物体

    1. 创建方式

    2. 游戏物体的查找和获取

    3. 功能

    四、 组件

    1. 组件的使用与获取

    2. Transform

    五、向量

    1. 静态变量

    2. 构造函数

    3. 成员变量

    4. 公共函数

    5. 静态函数

    6. 控制移动

    六、 输入系统的接口类

    1. 连续检测(移动)

    2. 连续检测(事件)

    3. 间隔检测(事件)

    4. 如果要找键,上官方文档输入Keycode来找

    七、 消息类

    1. 仅发送消息给自己(以及身上的其他MonoBehaviour对象)

    2. 广播消息(向下发,所有子对象包括自己)

    3. 向上发送消息(父对象包含自己)

    八、 动画

    1. 在游戏对象增添Animator动画编辑器就可以加入动画

    2. 脚本

    九、 时间

    1. 脚本

    十、 数学方法

    1. 脚本

    静态变量

    静态函数

    十一、 随机数

    1. 脚本

    静态变量

    静态函数

    十二、 鼠标操作

    1. 脚本

    2. 注意事项

    十三、 协程

    1. 脚本

    2. 作用

    十四、 调用

    1. 脚本

    十五、 刚体

    1. 注意事项

    2. 脚本

    十六、 音频

    1. 注意事项

    2. 脚本

    十七、 碰撞检测

    1. 注意事项

    2. 脚本

    十八、 资源加载

    1. 注意事项

    2. 脚本

    十九、 场景管理

    1. 注意事项

    2. 脚本


    一、 控制台输出

    • 1. Debug.Log("String")

      • 输出字符串
    • 2. Debug.LogWarning("String")

      • 输出警告为字符串内容
    • 3. Debug.LogError("String")

      • 输出报错为字符串内容
  • 二、 事件函数(生命周期函数)

    • 1. 赋值顺序

      • 变量声明并直接赋值>检视面板赋值>Awake>OnEnable>Start>外部赋值
    • 2. Reset()

      • 1.调用情况
        • 在编辑器不调用的情况下运行
      • 2.调用时间、此数和作用
        • 当脚本第一次挂载到对象或者使用Reset命令之后调用
        • 来初始化脚本的各个属性,Reset最常用与在检视面板中提供良好的默认值
    • 3. Awake()

      • 1.调用情况
        • a.在加载场景时初始化包含脚本的激活状态的GameObject时
        • b.GameObject从非激活转变为激活状态
        • c.在初始化使用Instantiate创建的GameObject之后
      • 2.调用时间、此数和作用
        • 在脚本实例的生存期内,Unity 仅调用 Awake 一次。脚本的生存期持续到包含它的场景被卸载为止。
        • Awake 来代替构造函数进行初始化,在Unity这里,组件的初始化不使用构造函数
    • 4. OnEnable()

      • 1.调用情况
        • a.游戏物体被激活
        • b.脚本组件被激活
      • 2.调用时间、此数和作用
        • 每次游戏物体或者脚本被激活都会调用一次
          • 已添加NewBehaviour的GameObject由未激活到已激活的时候,即setActive(true)
          • 脚本由不可用到可用的时候,即enabled=true
        • 重复赋值 变为初始状态
    • 5. Start()

      • 1.调用情况
        • a.游戏物体被激活
        • b.脚本组件被激活
      • 2.调用时间、此数和作用
        • 在脚本实例激活时在第一帧的Update之前被调用
        • 后于Awake执行,方便控制逻辑的前后调用顺序
    • 6. Update()

      • 1.调用情况
        • a.游戏物体被激活
        • b.脚本组件被激活
      • 2.调用时间、此数和作用
        • 每帧调用,是最常用函数,每秒调用60次左右(根据当前电脑的的性能和状态)
        • 实时更新数据,接受输入数据
    • 7. LateUpdate()

      • 1.调用情况
        • a.游戏物体被激活
        • b.脚本组件被激活
      • 2.调用时间、此数和作用
        • LateUpdate在调用所有Update函数后调用,每秒调用60次左右,安排脚本的执行顺序
        • 比如摄像机跟随,一定是人物先移动了,摄像机才会跟随
    • 8. OnDisable()

      • 1.调用情况
        • a.游戏物体被禁用
        • b.脚本组件被禁用
        • c.游戏物体被销毁
      • 2.调用时间、此数和作用
        • 满足调用情况时即时调用一次,用于一些对象的状态重置,资源回收与清理
    • 9. OnApplicatoinQuit()

      • 1.调用情况
        • a.在程序退出之前所有的游戏对象都会调用这个函数
        • b.在编辑器中会在用户终止播放模式时调用
        • c.在网页视图关闭时调用
      • 2.调用时间、此数和作用
        • 满足调用情况时即时调用一次,用于处理一些游戏退出后的逻辑
    • 10. OnDestroy()

      • 1.调用情况
        • a.场景或游戏结束
        • b.停止播放模式将终止应用程序
        • c.在网页视图关闭时调用
        • d.当前脚本被移除
        • e.当前脚本挂载到的游戏物体被删除
      • 2.调用时间、此数和作用
        • 满足调用情况时即时调用一次,用于一些游戏物体的销毁
  • 三、 游戏物体

    • 1. 创建方式

      • a.使用构造函数(声明+实例化) 创建一个空的游戏对象
        • GameObject myGo = new GameObject("MyGameObject");
      • b.根据现有的预制体(游戏物体)资源或者游戏场景已有的游戏物体来实例化
        • GameObject.Instantiate(grisGo);
      • c.使用特别的API创建一些基本的游戏物体类型(原始几何体)
        • GameObject.CreatePrimitive(PrimitiveType.Plane);
    • 2. 游戏物体的查找和获取

      • 当前游戏物体
        • this
        • 当前游戏物体的组件
          • this.script
          • this.gameObject
      • 对其他游戏物体查找(这时游戏物体必须是激活状态)
        • a.通过名称查找
          • GameObject mainCameraGo= GameObject.Find("Main Camera");
          • Debug.Log("mainCamera游戏物体的标签是:" + mainCameraGo.tag);
        • b.通过标签查找
          • GameObject mainCameraGo = GameObject.FindGameObjectWithTag("MainCamera");
          • Debug.Log("mainCamera游戏物体的名字是:" + mainCameraGo.name);
        • c.通过类型查找
          • No2_EventFunction no2_EventFunction= GameObject.FindObjectOfType<No2_EventFunction>();
          • Debug.Log("no2_EventFunction游戏物体的名字是:" + no2_EventFunction.name);
        • d.多数查找与获取
          • GameObject[] enemyGos= GameObject.FindGameObjectsWithTag("Enemy");
          • BoxCollider[] colliders= GameObject.FindObjectsOfType<BoxCollider>();
    • 3. 功能

      • Debug.Log("当前脚本挂载到的游戏物体名称是:"+gameObject.name);
      • GameObject.Instantiate;
        • 实例化游戏对象,预制体实例化
      • GameObject.CreatePrimitive;
        • 创建基本物体
        • var plane : GameObject = GameObject.CreatePrimitive(PrimitiveType.Plane);
      • Debug.Log("当前游戏物体标签是:"+gameObject.tag);
      • Debug.Log("当前游戏物体层级是:"+gameObject.layer);
      • 游戏物体的激活失活
        • Debug.Log("当前游戏物体的状态是:"+gameObject.activeInHierarchy);
        • Debug.Log("当前游戏物体的状态是:" +gameObject.activeSelf);
        • gameObject.SetActive(true);
  • 四、 组件

    • 1. 组件的使用与获取

      • a.组件都是在某一个游戏物体身上挂载的,可以通过游戏物体查找获取之后使用
        • No5_Component no5_Component = gameObject.GetComponent<No5_Component>();
        • No2_EventFunction no2_EventFunction = gameObject.GetComponent<No2_EventFunction>();
        • Debug.Log(no2_EventFunction.attackValue);
          • 获取脚本的值
        • GameObject grisGo = GameObject.Find("Gris");
        • Debug.Log(grisGo.GetComponent<SpriteRenderer>());
        • Debug.Log(enemyGos.GetComponentInChildren<BoxCollider>());
        • Debug.Log(enemyGos.GetComponentsInChildren<BoxCollider>());
        • Debug.Log(enemyGos.GetComponentInParent<BoxCollider>());
      • b.通过其他组件查找
        • SpriteRenderer sr= g
  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值