siki學院 協程和Mathf筆記

2021-10-03 09:36:32 字數 2313 閱讀 9013

一 協程

新建api08coroutine指令碼

普通方法

協程方法

區別:如果執行的是乙個普通方法,那麼會等這個普通方法執行完,再接著向下執行

如果呼叫的是乙個協程方法,那麼呼叫完協程方法後,不會等這個方法執行完,就接著向下執行。

協程的規則:1.返回值是ienumerator

2.返回引數的時候使用yield return null/0;

3.協程方法的呼叫startcoroutine(method)

自身可以設定暫停

coroutines協程

使用coroutines實現顏色動畫漸變

manual-scripting-scripting overview-coroutines

第一種:

第二種:

協程的開啟和關閉

第一種方法:

第二種:

二 mathf(工具類)

1)pi:π

abs:取絕對值

ceil:向上取整

ceiltoint:向上取int型別的整數

deg2rad:把度數變成弧度

rad2deg:把弧度變成度數

-epsilon:代表乙個無限小的小數-

-anyvalue+epsilon=anyvalue

anyvalue-epsilon=anyvalue-

infinity:代表乙個無限大的數

nativeinfinity:代表乙個無限小的數

新建api10mathf指令碼

clamp:限定value的範圍

clamp01:把乙個值限定在0-1之間

closestpoweroftwo:求得2的n次方 deltangle:兩個角度之間最短的距離

exp:e的power次方 sqrt:取得平方根

max:取最大值 min:取最小值

floor:向下取整 floortoint:向下取int型的整數

3)lerp:

引數:a 代表開始值(int/float型別) b 代表結束值(int/float型別) t 代表差值(必須是float型別)

可用於物體的動畫(先快後慢)

lerpangle:針對角度

4)movetowards:向某個位置進行勻速移動

5)pingpong:(最小值為0)

引數: t:運動速度 length:長度

6)input:(按鍵,觸控相關檢測) edit-project settings-input

新建api11input指令碼

imeisselected:和輸入法有關,用來判斷輸入法是否被選擇

getkey: 判斷鍵盤上某個鍵的按下和抬起

getmousedown:滑鼠按鍵事件的監測

0左鍵1右鍵2中鍵

getbutton:虛擬按鍵

fire1:滑鼠左鍵控制 horizontal:水平軸

getaxis:返回值是float型別的,可以用來模擬加速運動

gettouch:觸控事件

anykeydown:任意鍵按下

mouseposition:獲取滑鼠在螢幕上的位置 (以螢幕左下角為原點,以畫素為單位)

關於協程 nodejs和golang協程的不同

nodejs和golang都是支援協程的,從表現上來看,nodejs對於協程的支援在於async await,golang對協程的支援在於goroutine。關於協程的話題,簡單來說,可以看作是非搶占式的輕量級執行緒。一句話概括,上面提到了 可以看作是非搶占式的輕量級執行緒 在多執行緒中,把一段 放...

協程和恢復

乙個用到recover的程式停掉伺服器內部乙個失敗的協程而不影響其他協程的工作。func server workchan chan work func safelydo work work do work do work 發生panic,錯誤會被記錄且協程會退出釋放,其他協程不受影響 因為recov...

GoLang協程和管道

1.1 8000查詢素數的例子 package main import fmt 向intchan放入1 8000個數 func putnum intchan chan int 關閉intchan close intchan 從 intchan 取出資料,並且判斷是否為素數,如果是,就放入到prime...