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

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

【我?guī)旺椊切辀ug】飛出場外的boss:論天外飛仙是怎樣練成的

2020-12-19 16:45 作者:等--等燈等燈  | 我要投稿

這個系列內(nèi)容大概是科學(xué)分析一些游戲bug或"bug"的原理并給出可能的解決方案

往期內(nèi)容歡迎查看本人專欄

本期內(nèi)容比較短,所以作為半期
內(nèi)容只有一個:新活動中的boss,杰斯頓·威廉姆斯,是怎么飛出場外的?

什么叫天外飛仙啊

這個bug的詳情可以看UP主泥萌都是托迫害視頻
概括一下就是,推動重生期間的杰斯頓,可以使杰斯頓以推的初始速度無限進(jìn)行勻速位移,同時位移期間無視地形,甚至可以飛出場外

首先需要解決的問題是,為什么重生期間的杰斯頓,受到推力會無限進(jìn)行位移?
這個問題其實不難解釋
推力的機(jī)制是,對敵人的rigidbody施加力,隨后將敵人的狀態(tài)機(jī)切換至unbalance
進(jìn)入unbalance狀態(tài)時,會激活敵人的物理碰撞箱
只有在unbalance狀態(tài)下,敵人每幀會根據(jù)摩擦力更新移動速度

但是重生期間,敵人處于reborn狀態(tài)
而reborn狀態(tài)下,狀態(tài)機(jī)是無法直接切換至其它狀態(tài)的(需要切換的話必須帶有force屬性,但直接切換的方法沒有這個屬性)
因此造成的后果是,敵人的rigidbody被施加了力,獲得了速度,unity引擎控制著敵人根據(jù)速度進(jìn)行著位移
然而,狀態(tài)機(jī)仍處于reborn,并沒有被切換至unbalance
這導(dǎo)致,敵人的物理碰撞箱沒有被激活,敵人不會根據(jù)摩擦力更新移動速度

直接表現(xiàn)就是敵人會按初始速度做勻速位移,還可以無視地形飛出場地...

然后是第二個問題,為什么只有杰斯頓會觸發(fā)這個bug?
迫害視頻中有說明,除杰斯頓外,其它敵人進(jìn)行重生,都會使已經(jīng)鎖定了目標(biāo)的水炮丟失目標(biāo)
然而,我閱讀了重生相關(guān)的代碼,但并沒有發(fā)現(xiàn)哪里會使已經(jīng)鎖定的目標(biāo)丟失

我又嘗試對比了霜星和杰斯頓的重生天賦,發(fā)現(xiàn)不同的地方只有一個名為_hpRechargeRatio的變量
這個變量的作用是,決定重生期間的血條,從什么時候開始回復(fù)
霜星的這個變量值為0.5,意味著霜星的血條將從重生進(jìn)行至一半時開始回復(fù)
杰斯頓的這個變量值為1,意味著杰斯頓的血條從重生一開始就會進(jìn)行回復(fù)
(此外關(guān)于這個變量,霜星/大丑/梅妃鳥/黑蛇首次重生為0.5,左手為0.2,愛國者為0.85,黑蛇第2次重生為0。如果仔細(xì)觀察會發(fā)現(xiàn)血條開始回復(fù)的時刻一般都是對應(yīng)boss站起來的時刻,換言之這個變量是演出效果用的)

這里可以進(jìn)行一個推測
丟失目標(biāo)并不是因為重生,而是因為hp歸0
敵人存在一個隱藏機(jī)制,hp為0時無法選中,而且選中了也會丟失目標(biāo)
隨后fux2
大佬對這個猜想進(jìn)行了驗證,證實了這個隱藏機(jī)制的存在,此處特別感謝

那么只有杰斯頓不會在重生期間被丟失目標(biāo)的原因也很清楚了
因為除杰斯頓外所有會重生的敵人,重生時都有一段hp為0的時間
這段時間內(nèi),即使被鎖定了,也會被丟失目標(biāo)
杰斯頓重生時因為會立刻恢復(fù)hp,因此不存在hp為0的時間,即使進(jìn)入重生也不會導(dǎo)致目標(biāo)丟失

最后是修復(fù)方案(三選一)
1. 把杰斯頓的_hpRechargeRatio變量值調(diào)小一點,讓他有一段hp為0的時間。但是這種方案治標(biāo)不治本
2. 給enemy狀態(tài)機(jī)的reborn狀態(tài)加一個unbalance_immune的abnormalMask。這樣重生期間免疫位移,自然不會出問題
3. 修改knockback的方法。先切換狀態(tài)機(jī),判斷切換成功后再addForce


本文原載于NGA:https://ngabbs.com/read.php?tid=24720316

作者為本人

此專欄以CC BY-NC-SA 4.0協(xié)議發(fā)布


【我?guī)旺椊切辀ug】飛出場外的boss:論天外飛仙是怎樣練成的的評論 (共 條)

分享到微博請遵守國家法律
通州市| 北宁市| 界首市| 阿克| 安庆市| 通山县| 湄潭县| 安龙县| 梁平县| 乐昌市| 仙桃市| 当阳市| 汝阳县| 闵行区| 东光县| 四川省| 清新县| 格尔木市| 宁晋县| 凤庆县| 新乡县| 睢宁县| 岫岩| 定安县| 百色市| 枞阳县| 陆丰市| 永春县| 布尔津县| 邵阳县| 珲春市| 洛隆县| 江西省| 竹北市| 德兴市| 澄城县| 双城市| 桦南县| 湘潭县| 区。| 崇州市|