最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

unity:使協(xié)程不受幀率干擾的影響

2023-09-02 16:07 作者:钅離_LX  | 我要投稿

(個人記錄,記得很隨便)

提出問題

這是一個unity的協(xié)程方法,可以物體從小到大平滑過渡縮放

很簡單的,小學二年級都可以寫出來

 ? ?private IEnumerator Scale(float speed)
 ? ?{
 ? ? ? ?transform.localScale = Vector3.zero;
 ? ? ? ?while (localScale.magnitude - transform.localScale.magnitude > 0.01f)
 ? ? ? ?{
 ? ? ? ? ? ?float y = Mathf.SmoothStep(transform.localScale.y, localScale.y, Time.fixedDeltaTime * speed);
 ? ? ? ? ? ?transform.localScale = new Vector3(localScale.x, y, localScale.z);
 ? ? ? ? ? ?yield return 0;
 ? ? ? ?}
 ? ?}

實操發(fā)現(xiàn),這個協(xié)程會受到游戲幀率的影響

我嘗試修復,接連嘗試了deltaTime、fixedTime、unscaledTime、fixedUnscaledTime都無濟于事(修了一上午)

解決問題

后面,我與ChatGPT想到了一個絕妙的方法:

可以考慮使用實際時間(例如使用Time.time)進行縮放過渡,而不是依賴于幀率?。?/strong>

這是最終的代碼,效果非常好:

 ? ?private IEnumerator Scale(float speed)
 ? ?{
 ? ? ? ?transform.localScale = Vector3.zero;
 ? ? ? ?float startTime = Time.time;
 ? ? ? ?float duration = (localScale.magnitude - transform.localScale.magnitude) / speed;

 ? ? ? ?while (Time.time - startTime < duration)
 ? ? ? ?{
 ? ? ? ? ? ?float t = (Time.time - startTime) / duration;
 ? ? ? ? ? ?float y = Mathf.SmoothStep(0f, localScale.y, t);
 ? ? ? ? ? ?transform.localScale = new Vector3(localScale.x, y, localScale.z);
 ? ? ? ? ? ?yield return null;
 ? ? ? ?}

 ? ? ? ?transform.localScale = localScale;
 ? ?}


unity:使協(xié)程不受幀率干擾的影響的評論 (共 條)

分享到微博請遵守國家法律
砀山县| 温宿县| 白山市| 章丘市| 台前县| 左云县| 资阳市| 宁化县| 金川县| 三原县| 久治县| 南丹县| 鄂尔多斯市| 旬阳县| 北宁市| 通道| 轮台县| 娱乐| 丰原市| 都兰县| 登封市| 延长县| 长顺县| 怀化市| 镇江市| 弋阳县| 涞源县| 彭水| 万盛区| 昆明市| 安徽省| 怀远县| 温州市| 五原县| 河间市| 通渭县| 巫溪县| 浙江省| 新竹市| 吴川市| 六盘水市|