一.课前介绍
- API(应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
- Manual手册可以看到很多官方教程,Scripting API里面是各个类和方法的介绍。
二.事件函数
Unity中提供的事件方法和各个事件方法的作用
Awake:当一个物体被实例化出来的时候 会调用。
FixeUpdate①;Update②;LateUpdate③都是每帧调用的。但①是每秒调用60次,②每帧调用一次,并且在③之前。
OnDestroy:游戏物体被销毁时会调用。
三.TIME类
1. dealTime: 当前帧所占用的时间
2.fixeDeltaTime: 游戏到现在运行了多少时间。
3.timeScale: 将游戏暂停,或者加速播放。
4.Time.deltaTime: 控制一些动画或者是与运动有关的东西。
5.realTimeSinceStartup: 用来做性能测试。
四.创建游戏物体的三种方法
1.第一种创建方法:创建一个空的游戏物体,并在这个物体下面放置一些新的东西。
2.第二种创建方法Instantiate:(1)根据prefab
(2)根据另外一个游戏物体 等来进行克隆。
3.第三种创建方法CreatePrimitive:可以创建原始的图形,如Cube,Plane等。
AddComponent 添加组件
五. 游戏物体的类有那些变量可以去获取
- activeSelf
- activeInHierarchy: 判断游戏物体是否处于激活状态
- tag: 区分不同的游戏物体
Ps:transform组件是必须要有的一个组件,并且每个物体只有一个,且不能被移除。
go.SetActive(true),用于激活关闭/打开
六. GameObect,Component和Object的关系
如图所示:
其中,GameObject和Component都是由UnityEngine.Object继承而来的,两者也有很多的相似处。
七.UnityEngine下Object拥有的静态方法
1.Destroy: 既可以销毁某个游戏物体,也可以销毁某个组件,可以指定时间,销毁后不会立刻回收。
2.DestroyImmediate: 立即销毁,一般不建议使用。
3.DontDestroyOnLoad: 用来设置一个共享的游戏物体。
4.FindObjectOfType: 根据组件的类型去查找组件,找到第一个就会返回。
5.FindObjectsOfType: 可以查找场景中所有的组件,然后返回成一个数组。
八.GameObject独有的静态方法
1.CreatePrimitive:创建某个基本的几何体。
2.Find:
(1)Find:根据名字来进行查找。
(2)FindWithTag:根据标签进行查找,但只会查找一个游戏物体,如果多的话也只会返回第一个。比根据名字查找效率高。
(3)FindGameObjectWithTag: 根据标签进行查找,但会查找到所有的物体,并且返回一组数组。如果没有找到游戏物体,则返回空数组。
九.物体游戏间消息的发送和接收
1.CompareTag: 比较标签。
2.SetActive: 用于激活和禁用。
3.发送消息:
(1)BroadcastMessage: 广播消息。
(2)SendMessage: 针对某个目标,直接发送消息。
(3)SendMessageUpwards: 向上发送消息。
4.接收消息:
返回一个组件:
(1)GetComponent;查找当前游戏物体,根据类型得到某个组件。
(2)GetComponentInChildren;查找当前游戏物体和它所有的孩子。
(3)GetComponentInParent;查找当前游戏物体以及它所有的父亲,爷爷等。
返回所有组件。
(4)GetComponents;
(5)GetComponentsInChildren;
(6)GetComponentsInParent;
十.MonoBehavior类:
1.Variables: 变量
2.Public Functions:
(1)invoke: 调用某个方法
(2)invokeRepeating: 重复调用某个方法
(3)CancelInvoke: 取消调用某个方法
(4)isInvoking: 判断是否正在调用
3.print:输出(静态方法)
4.enabled = true/false: 表示激活或禁用
5.isActiveAndEnabled: 判断组件是否激活
6.gameObject/transform: 获得组件所在的游戏物体
7.name: 获得名字
8.tag:标签
十一.什么是协程,它是如何执行的
1.如果调用的是一个协程方法,那么调用完协程方法后,不会等这个方法执行完,而是继续向下执行。而普通方法则会等执行完返回后,再继续执行。
2.规则:
(1)返回值是IEnumerator
(2)返回参数的时候使用yield return null/0
(3)协程方法的调用 StartCoroutine(method())