日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity基础知识之协程

發布時間:2023/11/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity基础知识之协程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么要是用攜程?

我需要計算1—10000的累加,我們應該怎么做?

1、首先我們寫一個累加方法:

public void GetAccumulationResult()

{

int accumulationResult=0;

for(int i=1;i<=10000;i++)

{

accumulationResult+=i;

}

print("1-1000的累加結果為:"+accumulationResult);

}

2、這個方法應該在哪里調用呢?

不論你是在Update(),Start()......任何一個方法里調用,都會造成系統的停頓。我們知道C#中有多線程、異步可以實現,那么在unity中如果實現讓游戲正常運行不卡頓,又能正確獲得想要的結果呢?

答案就是:Coroutine(協同程序 簡稱 協程?)

3、協程的使用

首先對累加的方法進行改造

IEnumerator GetAccumulationResult()

{

????????int accumulationResult=0;

???????for(int i=1;i<=1000;i++)

????????{

????????????????accumulationResult+=i;

????????????????yield return null; //下一幀再執行后續代碼

????????}

????????print("1-1000的累加結果為:"+accumulationResult);

}

在Update方法中調用

void Update()

{

????????????if (Input.GetKeyDown(KeyCode.Space))//按下空格執行
? ? ? ? ? ? {

? ? ? ? ?????????print("游戲正常運行-1");

?????????????????StartCoroutine("GetAccumulationResult"); //協程開始

? ? ? ? ? ????????print("游戲正常運行-2");

? ? ? ? ? ?}

}

游戲運行后按3次空格

控制臺德輸出結果是這樣的:

游戲正常運行-1

游戲正常運行-2

游戲正常運行-1

游戲正常運行-2

游戲正常運行-1

游戲正常運行-2

1-1000的累加結果為:500500

1-1000的累加結果為:500500

1-1000的累加結果為:500500

總結

以上是生活随笔為你收集整理的Unity基础知识之协程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。