常用 API 之实例化与销毁
1.案例场景制作

①创建地面模型;

②创建需要实例化的模型,并制作成预制体;

实例化生成 1 个方块
Resources.Load(Path);//动态加载某个在Resources文件夹下的物品

GameObject.Instantiate(Object, Vector3, Quaternion);

参数说明:

Object:用于实例化的预制体;

Vector3:实例化后生成的物体所在的位置;

Quaternion[四元数]:实例化后生成的物体的旋转状态;

Quaternion.identity:无旋转;

3.构造随机位置

位置是用 Vector3 类型进行表示的。

X,Y,Z 三个值确定了物体在三维世界中的位置。

Random.Range(min, max):生成随机数。

在 min 和 max 直接随机生成一个随机数。

演示:按下键盘的一个键,就在随机位置实例化一个物体。

4.销毁游戏物体

GameObject.Destroy(Object, float);定时销毁某个游戏物体。

参数说明:

Object:要销毁的游戏物体;

float:时间,多少秒后销毁;

常用 API 之 Invoke 函数调用
1.Invoke 函数代码

Invoke(string,float):多少秒后执行某个函数[只会调用一次]。

参数说明:

String:要执行的函数的名称;

Float:秒数,倒计时的时间;

InvokeRepeating(string,float,float):多少秒[第二个参数]后执行某

个函数,并且以后每隔多少秒[第三个参数]都会执行该函数一次[重复调用 N 次]。

参数说明:

String:要执行的函数的名称;

Float:秒数,准备时间,预热时间;

Float:秒数,重复调用的间隔时间;

CancelInvoke():取消这个脚本中所有的 Invoke 调用。

2.Invoke 函数的类

MonoBehaviour 类。

我们现在阶段写的脚本,都是默认继承“MonoBehaviour”类的,我们自己写

的脚本类,都是这个“MonoBehaviour”类的子类,所以我们可以直接通过

写方法名的形式,就可以调用父类中的方法。

当然如果你写的类不继承“MonoBehaviour”类的话也是可以的,但是脚本是没办法挂载到任何物体上,只能通过代码去调用

SendMessage 消息发送
1.SendMessage 函数

gameObject.SendMessage(string):通知这个游戏物体身上的脚本文件中的“指定方法”执行。

参数说明:

String:方法名,要执行的方法的名称;

脚本调用该方法进行发送消息,可以使自身所有脚本进行接收,其接收的类型为Object

示例:

首先我么创建一个SendMessageTest.cs脚本内容如下void Start () {

SendMessage(“GetMessage”, this.gameObject, SendMessageOptions.RequireReceiver);
}
我们再创建一个脚本GetMessageTest.cs脚本 内容如下
void GetMessage(GameObject _g)
{
Debug.Log(this.gameObject.name+" Get: "+_g.name);
}

常用 API 之协同程序
1.协同程序简介

转存失败
重新上传
取消
1.什么是协同程序

协同程序,简称“协程”。在脚本运行过程中,需要额外的执行一些其他的代码,

这个时候就可以将“其他的代码”以协程的形式来运行。

类似于开启了一个线程,但是协程不是线程。

2.协同程序的使用前提

只有在继承了“MonoBehaviour”这个类的子类中才能使用相关的协程方法。

2.协同程序语法格式

1.定义协同程序

协同程序就是一个“代码片段”,往往我们需要将这个代码片段封装成一个方法,

或者称之为函数。

IEnumerator Task3()
{
yield return new WaitForSeconds (2);
Debug.Log (“任务 3”);
}

参数说明:

IEnumerator:协同程序的返回值类型;

yield return:协同程序返回 xxxxx;

new WaitForSeconds (秒数):实例化一个对象,等待多少秒后继续执行。

这个 Task3()的作用就是等待两秒后,继续执行任务 3.

2.开启协同程序

StartCoroutine(“协同程序方法名”);

这个 StartCoroutine 有三种重载形式,目前先只介绍这一种。

3.停止协同程序

StopCoroutine(“协同程序方法名”);

这个 StopCoroutine 也有三种重载形式,目前先只介绍这一种。

协程是一种用户态的轻量级线程,协程的调度完全由用户控制。从技术的角度来说,“协程就是你可以暂停执行的函数”。

协程与线程进程的主要区别:

线程进程都是同步机制,而协程则是异步

协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态。