五月天青色头像情侣网名,国产亚洲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é)程不受幀率干擾的影響的評論 (共 條)

分享到微博請遵守國家法律
安新县| 金平| 滨州市| 茌平县| 布拖县| 汉阴县| 托里县| 定襄县| 虎林市| 清水河县| 开原市| 吴江市| 靖边县| 鲁甸县| 荣昌县| 滨州市| 车险| 若羌县| 合水县| 铜川市| 万州区| 山东省| 荆门市| 利川市| 饶河县| 盐城市| 韶关市| 青冈县| 襄樊市| 达拉特旗| 昌都县| 鲁山县| 博野县| 东至县| 灵宝市| 新平| 南阳市| 怀化市| 阿坝| 沂水县| 丰原市|