unity 延迟等待执行
關于unity延遲執行網上也有很多了,我這里只是封裝下,讓寫代碼變得更加優雅,使用更加方便。
一個問題想要表述清楚,讀者也能看明白,無非3個點:What(要說的是什么),How(怎么用你這個東西?什么情況下有用?),Why(為什么要這么做,這么做有啥好處?我不這么用可以不可以?等等)
首先來看 what,直接上代碼了
代碼也有注釋,應該很清楚了,,,這里要創建一個static的類,這樣的類也算是一個工程中必要的工具類了吧,可以添加自己的擴展工具方法,使自己的代碼寫的更加流暢,,,嗯,(代碼最后送大家一個函數,怎么用呢?平時我們判斷一個字符串是null還是“”,怎么判斷的呢,每次都要string.IsNullOrEmpty(str),巨麻煩,現在你只用str.IsNullOrEmpty(),代碼書寫起來流暢無打斷,是不是很安逸)
好吧,回歸正題,如何用(How)?
用就很簡單了,在繼承了MonoBehaviour的腳本方法里,直接:
有哪些使用的場景(情況)的呢?
如要等一個特效完了,才顯示界面等,反正就是各種等待都行。
這里DelayToDo返回了Coroutine ,所以要停止攜程也很簡單 調用StopCoroutine(coroutine ),傳入剛的返回就行了。因為使用的是協程,所以他的生命周期和所掛腳本的gameobjtect是一致的,如果銷毀或隱藏了gameobject,該延遲就會停止執行。
如果要使用全局的(無論一個界面還是物體被銷毀或隱藏了該延時執行都要繼續進行下去)的話,你可以建一個一直的存在的物體掛一個腳本,用這個腳本去調用上面DelayToDo。還有一種方便的方式是,如果你的項目中使用Dotween的話,可以使用:
最后,來說各種Why,
這么做有啥好處?
好處是,寫代碼方便,提高效率,延遲執行一句代碼搞定,能使用 . 的就使用 . 。這樣代碼看起來也簡潔很多。
我不這么做行不行?我有更好的方法?
可以,當然可以。。那個,如果你有好的方法方式,還請留言給出,大家一起交流。
總結
以上是生活随笔為你收集整理的unity 延迟等待执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis哨兵、持久化、主从
- 下一篇: 简历信息粘贴板