PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
GameDesign
[程式] Unity的animator
作者:
reccaX
(渺小的正義)
2016-12-01 03:36:07
各位安,最近照著網路上的影片教學學習unity的基礎,
但是目前遇到了問題,看的是這個影片:
https://youtu.be/5ghbRb0bBJs
當中有個段落是要設定在降落而非著地的時候,
animator的bool land為true(約19分18秒)
但是只要我打上那段code,即使在落地的情況下,land仍然為true,
並且因為在地面上,所以會不停地在false跟true當中切換。
由於這段code並不困難,我實在不知道該怎麼處理這個問題,
不知道有沒有人可以幫忙看看可能是甚麼原因?
該段code:
if (myRigidbody.velocity.y < 0)
{
myAnimator.SetBool("land", true);
}
作者:
cjcat2266
(CJ Cat)
2016-12-01 03:49:00
會變成true表示仍然有向下的速度分量,找出原因吧
作者:
reccaX
(渺小的正義)
2016-12-01 04:19:00
我有用log看rigibody.velocity.y,是0啊......
作者:
cjcat2266
(CJ Cat)
2016-12-01 04:37:00
確定是這行被執行嗎? 試試看改成 y < 0.01f
作者:
wix3000
(癢,好吃)
2016-12-01 07:23:00
不可相信你的浮點數
作者:
cjcat2266
(CJ Cat)
2016-12-01 07:54:00
推樓上,float比值都要考慮誤差
作者:
reccaX
(渺小的正義)
2016-12-01 15:02:00
rigibody的gravity scale會有影響嗎?我放棄深究了,決定多加一個判斷isground 囧
作者:
cjcat2266
(CJ Cat)
2016-12-01 16:34:00
一般平台動作遊戲不建議用物理模擬,詳見
#1MzrJMwb
作者:
reccaX
(渺小的正義)
2016-12-01 16:51:00
我明白了,感謝
作者:
guagin
(AnnoyingEve)
2016-12-03 12:11:00
condition?
作者:
cowbaying
(是在靠北喔)
2016-12-04 21:43:00
只能說物理引擎不是萬能的 尤其是碰撞判定
作者:
wix3000
(癢,好吃)
2016-12-05 13:39:00
可是碰撞不用Unity物理的話要怎麼辦 QQ?
作者:
cjcat2266
(CJ Cat)
2016-12-05 15:19:00
碰撞和投射可以用,解析(resolution)要自己處理否則會很飄,除非那是你要的風格,詳細仍請見
#1MzrJMwb
作者:
reccaX
(渺小的正義)
2016-12-13 04:28:00
看了一下發現y會在0跟-1.77之間跳動,不明原因
作者:
cjcat2266
(CJ Cat)
2016-12-13 04:49:00
放個data break point找出原因吧你的單位是像素還是公尺? 請用後者還是Unity有自動單位轉換? 不清楚,先找出負值原因再說
作者:
reccaX
(渺小的正義)
2016-12-13 15:43:00
http://i.imgur.com/13dviuL.png
不打算深究這個問題因為算是跟著範例跑,往下的是用內建重力,之後做專案會再想辦法處理
作者:
cjcat2266
(CJ Cat)
2016-12-13 16:28:00
呃...-1.77跟-1.77e-15差非常多耶...後者是極小數,為上面討論的誤差,這種東西一定要懂啊不瞭解的話以後照樣碰壁補充,那是"科學記號"表示法
http://bit.ly/2hI5tZz
1.xyzEn 代表 1.xyz * 10^n
作者:
reccaX
(渺小的正義)
2016-12-13 17:03:00
了解了,感謝,文組出身碰幾次壁我覺得還算正常XD我比較好奇的是為什麼範例的不會出現這個誤差....code是完全一樣的,是unity哪邊設定的問題嗎?
作者:
cowbaying
(是在靠北喔)
2016-12-13 18:52:00
主要是浮點數 有效位數的問題簡單寫個程式 0.0001 +1000次 單精度跟倍精度的結果是不一樣的範例的不會出現這種誤差 只能說是特別規劃過
作者:
cjcat2266
(CJ Cat)
2016-12-14 02:08:00
只能說範例執行環境天時地利人和,沒有產生誤差這種物理模擬的速度Y分量,一定都要考慮誤差所以要用 vel.y > -EPSILON, EPSILON為小正數範例的 vel.y > 0 是不良示範而且我建議習慣寫成 > 0.0f 或 > .0f就可以很明顯的看出是在比較可能會有誤差的浮點數↑噢,上上行不是指跟0比較,還是要跟EPSILON比較重點是常數要寫成浮點數表示法
作者:
reccaX
(渺小的正義)
2016-12-14 02:42:00
好的,很感謝大家熱心指導
繼續閱讀
Fw: [北美][經驗] 鄉民閒聊北美遊戲產業實習
AmosYang
[請益] 作品展現方式請教
LitterShripm
[請益] 怎樣比較好進入日本遊戲業
weikuochen
[情報] 【提姆PartyNight!#8】超級雞馬
fafa43
Re: [請益] static問題求解
esmond
Re: [請益] static問題求解
gyd
Re: [請益] static問題求解
ghostmote
[請益] static問題求解
LitterShripm
[程式] win10 vulkan最近不能run?
lovesnake
[程式] UE4 Code Plugin Marketplace上架心得
dorgonman
Links
booklink
Contact Us: admin [ a t ] ucptt.com