无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

關(guān)于跳躍手感的解決

2023-02-22 18:39 作者:WonderFF1  | 我要投稿

角色跳躍功能一直是RPG游戲的核心玩法,不同機(jī)器每秒的執(zhí)行幀數(shù)是不相同的,配置越高的機(jī)器每秒執(zhí)行的幀數(shù)越高。在Unity中,為了兼容不同配置的機(jī)器,提供了兩個(gè)函數(shù)UpdataFixedUpdataUpdata函數(shù)每一幀被調(diào)用一次,這也就導(dǎo)致了低配機(jī)器每秒的調(diào)用次數(shù)不足,使得操作不靈敏。FixedUpdata固定每0.02秒執(zhí)行一次,可以很好的兼顧各種配置的機(jī)器。這樣就引出了一個(gè)常用的解決辦法,雖然低配機(jī)器Updata執(zhí)行次數(shù)不足,但是不是固定執(zhí)行,所以Updata函數(shù)中可以馬上獲得玩家按下按鍵的操作。Unity手冊(cè)中也明確指出了Input.GetButtonInput.GetButtonDown這類有關(guān)于按鍵檢測(cè)的函數(shù)需要放在Updata中去執(zhí)行,這樣能夠得到實(shí)時(shí)的反饋。而所有與物理效果有關(guān)的仿真模擬需要放在FixedUpdata中執(zhí)行,因?yàn)槲矬w移動(dòng)需要持續(xù)穩(wěn)定的推力,對(duì)執(zhí)行頻率更加敏感,所以在這個(gè)項(xiàng)目中,需要先在Updata中獲得按鍵信息,再去FixedUpdata中執(zhí)行代碼,以此獲得較好的跳躍手感。例如:

Update()

{

????? if(Input.GetButtonDown("Jump"))

????????????jumpPressed = true;

}

FixedUpdate()

{

???????if(jumpPressed = true)

????????????DoubleJump();

}

這樣當(dāng)玩家按下跳躍鍵時(shí),先會(huì)執(zhí)行Updata獲取已經(jīng)按下跳躍鍵的信息,然后固定執(zhí)行FixedUpdata,達(dá)到幾乎無(wú)延遲的跳躍效果。這也是實(shí)現(xiàn)幀同步的關(guān)鍵步驟。但是這個(gè)方案也并不完美,因接收頻率過高或者過低時(shí),固定執(zhí)行的FixedUpdata可能會(huì)出現(xiàn)響應(yīng)多次或者響應(yīng)過少的情況,本人做到這一步已經(jīng)完美解決跳躍手感問題,故沒有進(jìn)行下一步研究改進(jìn)。

關(guān)于跳躍手感的解決的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
个旧市| 新余市| 恭城| 宿州市| 德州市| 长岛县| 上饶县| 班玛县| 荣昌县| 邹平县| 白城市| 军事| 广水市| 瓦房店市| 霸州市| 乐至县| 青铜峡市| 赤城县| 西林县| 巩留县| 沂南县| 苗栗市| 铅山县| 安塞县| 长丰县| 庄浪县| 西丰县| 赤壁市| 榆中县| 盐城市| 白银市| 通榆县| 吉林市| 驻马店市| 信阳市| 水城县| 福海县| 科技| 松原市| 中超| 太仆寺旗|