ProjectX.001.暫名'工作室幻想' - 開發(fā)日志.003 - 廁紙到軌道滑輪 & 伸縮臂的渲染

因為內(nèi)部人員測試的時候,老是有人說之前的抽卡形式像抽廁紙,雀食!所以我就和美術(shù)Friedegg商量了一下,弄了個新的抽卡方案,轉(zhuǎn)成用軌道滑輪的形式。

滑軌的形式,在向玩家傳遞玩法概念上帶來了些一開始未設(shè)想的優(yōu)勢
當(dāng)將卡牌彈回牌庫時,卡會向左走,當(dāng)卡被棄置的時候,卡會向右走
這樣玩家對于我們在輪次末尾棄置掉剩余卡牌的這個概念的理解更加明確
不!愧!是!我!一不小心就提升了用戶體驗?zāi)亍?/span>

brad在背手巡邏中,又依據(jù)現(xiàn)有的滑輪版本提了新的優(yōu)化需求,他想要抽卡時有個類似伸縮臂的功能,也就是下圖展示的效果。

設(shè)計嘛,反正拍腦袋就行,開發(fā)工作反正又不是他干,程序就可憐了又得加班加點。
這個效果的實現(xiàn)方案出的很快,只要用spring joint就好了,然后將damping ratio和frequency設(shè)一設(shè),讓這個彈簧不會回彈的太厲害就行。
但是吧,問題出現(xiàn)了,joint需要剛體是dynamic然后受重力作用,這樣的話,當(dāng)玩家斜著拉扯這個卡夾,x軸方向上的力會導(dǎo)致卡夾開始擺錘運動,我得想個辦法把他x軸上的力給清零。

這個屬實有點為難我了,
我想著要獲取到剛體的velocity然后加個判定條件把力的大小重設(shè)下。但是吧,實際寫的時候,我發(fā)現(xiàn)這個力的歸屬于spring joint的force變量,和rigidbody的velocity變量沒關(guān)系,然后又沒有辦法通過代碼覆寫spring joint的force(這東西是只讀的)

然后就給我卡住了。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——————此處自己調(diào)研看視頻查文檔一上午——————
查著查著我突然想起brad笑著說我還是太嫩了,該tricking的時候要tricking的樣子,
雖然嘔了,但我好像明白了些神魔———真相只有一個!

是時候換個解題思路了,我總是想著用代碼解決問題,物理系統(tǒng)的問題就應(yīng)該用物理組件去解決嘛!不愧是我!我想到只要用三根彈簧搞個三角結(jié)構(gòu),從三個方向施力,將卡夾鎖在中心的位置就可以避免擺錘運動的現(xiàn)象。真是謝謝brad平時對我的諄諄教導(dǎo)了!??

問題完美解決!但是新?的?問?題~?已經(jīng)?出現(xiàn)??~

當(dāng)一張卡被棄置掉后,滑輪會重置位置到屏幕的左側(cè)生成新的卡牌,再向右滑入屏幕。這個區(qū)間,線的渲染會有一個瞬間橫跨整個屏幕。這個問題只要管理下line renderer的渲染就可以解決……大噶!扣多瓦魯!我選擇另一個方案。

反正也簡單,就是再加一組滑輪替代掉老滑輪就行了,這個方案的優(yōu)勢點在于,解決橫屏線bug的同時還縮減了棄卡抽卡中間的時間間隔,免的玩家需要盯著空白屏幕看太久。

程序員已經(jīng)累麻了,不僅要開發(fā)還要寫日志投專欄……各位看官走過路過給個三連支持一下吧~