五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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é)程不受幀率干擾的影響的評論 (共 條)

分享到微博請遵守國家法律
清河县| 南陵县| 五指山市| 东海县| 拜城县| 社会| 萨嘎县| 柞水县| 拉孜县| 英山县| 江津市| 冀州市| 武汉市| 来宾市| 洪江市| 阿拉善盟| 阿尔山市| 平远县| 大厂| 肃北| 莫力| 晋宁县| 黑龙江省| 伊通| 崇左市| 鸡东县| 乐清市| 淳化县| 丰原市| 西乌珠穆沁旗| 当涂县| 兴义市| 高平市| 贵州省| 锡林郭勒盟| 云阳县| 灵寿县| 横峰县| 阿鲁科尔沁旗| 万年县| 涟水县|