Api 应用程序编程接口
前言
笔记是看siki学院中《Unity中常用api》的学习笔记
课程地址: http://www.sikiedu.com/my/course/59
强烈推荐大家去看老师的课
MonoBehaviour总览(015 -016)
Unity中文手册(MonoBehaviour):
https://docs.unity.cn/cn/current/ScriptReference/MonoBehaviour.html
Messages类:不能被调用,但可以在子类中重写变成方法。
变量:runInEditMode,允许 MonoBehaviour 的特定实例在编辑模式下运行(仅可在 Editor 中使用)。
useGUILayout,禁用该属性可跳过 GUI 布局阶段。
公共函数
CancelInvoke | 取消该 MonoBehaviour 上的所有 Invoke 调用。 |
Invoke | 在 time 秒后调用 methodName 方法。 |
InvokeRepeating | 在 time 秒后调用 methodName 方法,然后每 repeatRate 秒调用一次。 |
IsInvoking | 是否有任何待处理的 methodName 调用? |
StartCoroutine | 启动一个协同程序。 |
StopAllCoroutines | 停止在该行为上运行的所有协同程序。 |
StopCoroutine | 停止在该行为上运行的第一个名为 methodName 的协同程序或存储在 routine 中的协同程序。 |
静态方法: print
继承的变量:
enabled | 启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。 |
isActiveAndEnabled | 是否已激活并启用 Behaviour? |
gameObject | 此组件附加到的游戏对象。始终将组件附加到游戏对象。 |
tag | 此游戏对象的标签。 |
transform | 附加到此 GameObject 的 Transform。 |
hideFlags | 该对象应该隐藏、随场景一起保存还是由用户修改? |
name | 对象的名称。 |
MonoBehaviour中Invoke的使用(017)
Invoke(“ str ”, 3); 代表3s后调用名为str的方法。
可以用bool类型的 IsInvoking(“ str ”);来判断函数是否被调用。
取消调用,指定参数CancelInvoke(“str”);取消指定的调用;
不指定参数,取消所有的调用。
InvkeRepeating(“ str ”, 4, 2); 代表4s后第一次调用str方法,之后每间隔2s调用一次。
什么是协程、它是如何执行的(018)
协程方法(Coroutines)
一般方法的调用顺序为从上到下依次执行,上一个方法调用完才执行下一个方法。
如果调用的是一个协程方法,不会等这个方法执行完,就开始执行。
协程方法不会阻塞方法的运行。
协程方法的规则
1.返回值是IEnumerator;
2.返回参数的时候使用yield return;
3.调用时 使用StartCoroutine()来调用。
使用Coroutine实现颜色动画渐变(019)
由黑变成白:
void Update(){
StartCoroutine(Fade());
}
IEnumerator Fade()
{
for ( float i = 0; i <= 1; i += 0.1f)
{
cube.GetComponent<MeshRenderer>().material.color = new Color(i, i, i, i);
yield return new WaitForSeconds(0.1f); //暂停0.1s 再执行
}
}
如果是由当前颜色变到红色:
IEnumerator Fade()
{
for(float i = 0; i <= 1; i += 0.1f)
Color color = cube.GetComponent<MeshRenderer>().material.color;
Color newColor = Color.Lerp(color, Color.red, 0.02f); //差值运算,从当前颜色到目标颜色,以0.02为标准变换
yield return new WaitForSeconds(0.02f);
if(Mathf.Abs(Color.red.r - newColor.r) <= 0.01f) //颜色的rgba是color的值,判断差值
{
break;
}
}