Update和FixedUpdate都是每幀調(diào)用的,但區(qū)別挺大。
Update是啥?每幀都執(zhí)行,但幀間隔不固定,比如這秒跑60幀,下秒可能卡成30幀,時(shí)間忽長忽短,更新就不穩(wěn)定。
而FixedUpdate不一樣,它是按固定時(shí)間間隔來的,比如設(shè)成0.02秒就每0.02秒跑一次,雷打不動(dòng),節(jié)奏穩(wěn)得很。
舉個(gè)例子:
Update可能第一幀隔0.02秒,下一幀隔0.2秒,差十倍,角色移動(dòng)就會一卡一卡的。
FixedUpdate?每幀間隔都是0.02秒,t1=t2,穩(wěn)如老狗,動(dòng)起來自然順滑。
而且Update受畫面影響大,場景里模型多、面數(shù)高,幀率一掉,Update就被拖慢。
FixedUpdate完全不受這個(gè)影響,只認(rèn)自己的節(jié)奏,定時(shí)執(zhí)行。
官方也說了:搞物理、動(dòng)剛體(Rigidbody)的時(shí)候,必須用FixedUpdate!
比如給角色加個(gè)力,F(xiàn)orce啊、速度啊,都得放FixedUpdate里,不然力一會兒大一會兒小,物理效果就亂套了。
因?yàn)槲锢硪姹旧硪彩前垂潭〞r(shí)間步進(jìn)的,跟FixedUpdate配套才對味兒。
順便提一嘴,這個(gè)固定時(shí)間能改:
Edit → Project Settings → Time → Fixed Timestep 改數(shù)值就行,默認(rèn)0.02秒(也就是50次/秒)。
總結(jié):
動(dòng)畫、UI這些隨幀率變的,用Update;
物理、剛體、需要穩(wěn)定的邏輯,一律上FixedUpdate,別猶豫。
記住了,別混著用,不然bug自己都找不著。
Update是啥?每幀都執(zhí)行,但幀間隔不固定,比如這秒跑60幀,下秒可能卡成30幀,時(shí)間忽長忽短,更新就不穩(wěn)定。
而FixedUpdate不一樣,它是按固定時(shí)間間隔來的,比如設(shè)成0.02秒就每0.02秒跑一次,雷打不動(dòng),節(jié)奏穩(wěn)得很。
舉個(gè)例子:
Update可能第一幀隔0.02秒,下一幀隔0.2秒,差十倍,角色移動(dòng)就會一卡一卡的。
FixedUpdate?每幀間隔都是0.02秒,t1=t2,穩(wěn)如老狗,動(dòng)起來自然順滑。
而且Update受畫面影響大,場景里模型多、面數(shù)高,幀率一掉,Update就被拖慢。
FixedUpdate完全不受這個(gè)影響,只認(rèn)自己的節(jié)奏,定時(shí)執(zhí)行。
官方也說了:搞物理、動(dòng)剛體(Rigidbody)的時(shí)候,必須用FixedUpdate!
比如給角色加個(gè)力,F(xiàn)orce啊、速度啊,都得放FixedUpdate里,不然力一會兒大一會兒小,物理效果就亂套了。
因?yàn)槲锢硪姹旧硪彩前垂潭〞r(shí)間步進(jìn)的,跟FixedUpdate配套才對味兒。
順便提一嘴,這個(gè)固定時(shí)間能改:
Edit → Project Settings → Time → Fixed Timestep 改數(shù)值就行,默認(rèn)0.02秒(也就是50次/秒)。
總結(jié):
動(dòng)畫、UI這些隨幀率變的,用Update;
物理、剛體、需要穩(wěn)定的邏輯,一律上FixedUpdate,別猶豫。
記住了,別混著用,不然bug自己都找不著。