SiKi学院 Unity中常用api学习笔记(015-019)
Api?應(yīng)用程序編程接口
前言
筆記是看siki學(xué)院中《Unity中常用api》的學(xué)習(xí)筆記
課程地址:??http://www.sikiedu.com/my/course/59
強烈推薦大家去看老師的課
MonoBehaviour總覽(015 -016)
Unity中文手冊(MonoBehaviour):
https://docs.unity.cn/cn/current/ScriptReference/MonoBehaviour.html
Messages類:不能被調(diào)用,但可以在子類中重寫變成方法。
變量:runInEditMode,允許 MonoBehaviour 的特定實例在編輯模式下運行(僅可在 Editor 中使用)。
? ? ?useGUILayout,禁用該屬性可跳過 GUI 布局階段。
公共函數(shù)
| CancelInvoke | 取消該 MonoBehaviour 上的所有 Invoke 調(diào)用。 |
| Invoke | 在 time 秒后調(diào)用 methodName 方法。 |
| InvokeRepeating | 在 time 秒后調(diào)用 methodName 方法,然后每 repeatRate 秒調(diào)用一次。 |
| IsInvoking | 是否有任何待處理的 methodName 調(diào)用? |
| StartCoroutine | 啟動一個協(xié)同程序。 |
| StopAllCoroutines | 停止在該行為上運行的所有協(xié)同程序。 |
| StopCoroutine | 停止在該行為上運行的第一個名為 methodName 的協(xié)同程序或存儲在 routine 中的協(xié)同程序。 |
靜態(tài)方法:?print
繼承的變量:
| enabled | 啟用的 Behaviour 可更新,禁用的 Behaviour 不可更新。 |
| isActiveAndEnabled | 是否已激活并啟用 Behaviour? |
| gameObject | 此組件附加到的游戲?qū)ο蟆J冀K將組件附加到游戲?qū)ο蟆?/td> |
| tag | 此游戲?qū)ο蟮臉?biāo)簽。 |
| transform | 附加到此 GameObject 的 Transform。 |
| hideFlags | 該對象應(yīng)該隱藏、隨場景一起保存還是由用戶修改? |
| name | 對象的名稱。 |
MonoBehaviour中Invoke的使用(017)
Invoke:
Invoke(“?str?”, 3);? ?代表3s后調(diào)用名為str的方法。
可以用bool類型的?IsInvoking(“?str?”);來判斷函數(shù)是否被調(diào)用。
CancelInvoke
取消調(diào)用,指定參數(shù)CancelInvoke(“str”);取消指定的調(diào)用;
不指定參數(shù),取消所有的調(diào)用。
?InvokeRepeating
InvkeRepeating(“?str ”, 4, 2);?代表4s后第一次調(diào)用str方法,之后每間隔2s調(diào)用一次。
什么是協(xié)程、它是如何執(zhí)行的(018)
協(xié)程方法(Coroutines)
一般方法的調(diào)用順序為從上到下依次執(zhí)行,上一個方法調(diào)用完才執(zhí)行下一個方法。
如果調(diào)用的是一個協(xié)程方法,不會等這個方法執(zhí)行完,就開始執(zhí)行。
協(xié)程方法不會阻塞方法的運行。
?
協(xié)程方法的規(guī)則
1.返回值是IEnumerator;
2.返回參數(shù)的時候使用yield?return;
3.調(diào)用時?使用StartCoroutine()來調(diào)用。
使用Coroutine實現(xiàn)顏色動畫漸變(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 再執(zhí)行} }如果是由當(dāng)前顏色變到紅色:
? ? 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); //差值運算,從當(dāng)前顏色到目標(biāo)顏色,以0.02為標(biāo)準(zhǔn)變換yield return new WaitForSeconds(0.02f);if(Mathf.Abs(Color.red.r - newColor.r) <= 0.01f) //顏色的rgba是color的值,判斷差值{break;} }???
總結(jié)
以上是生活随笔為你收集整理的SiKi学院 Unity中常用api学习笔记(015-019)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PhotoSwipe介绍(1)
- 下一篇: PHM的研究