Unity 射線落點和碰撞盒 動畫跳過

2021-09-22 16:48:39 字數 1190 閱讀 6914

為什麼要寫開發日誌呢?

我發現自己不太喜歡做專案,或者說對實現需求提不起興趣。這樣對工作是非常不利的,一有機會我就想逃避,最後工作堆在一起我就**了。

逃避時通常喜歡追劇、追綜藝、玩手機。情況好一點的話,會看書或者研究乙個感興趣的問題。但這本質上都是逃避啊。

我到底喜歡做什麼呢?我喜歡研究乙個系統的問題,把它的前世今生、整體邏輯理清楚,我會很有成就感。

而實現需求,是乙個個瑣碎的細節問題,完全不成系統。那麼有沒有乙個辦法把它整理成乙個系統呢?我覺得,先記錄,再整理是乙個不錯的點子。而且講道理,工作,不就是在解決乙個個細節問題嗎?這就是現實啊,我必須克服自己的這種心理。

問題描述:

檢測射線碰到的碰撞盒,並使角色移動到hit.point的位置上。有時候,角色就會穿插進模型中,不是我預想的效果。

我想要怎麼解決:

1.查一下hit.point究竟是什麼?

其實就是從攝像機的螢幕點向世界中發出射線,和collider的交點。

2.仔細觀察它是怎麼穿插進模型的,觀察它的碰撞盒。

之前的**邏輯是:使player的position漸變到hit.point處。我觀察之後發現,player確實到了我指定的位置。但是當進行鏡頭旋轉時,烏賊、攝像機、player他們的位置都不在一處。我應該保證的,不是player不穿牆,而是烏賊頭部不穿牆或者視野(攝像機不穿牆)。所以,進行的修改應該是:將該指令碼繫結在烏賊身上,然後將相機設定為烏賊的子物體。看明白控制相機的**,並且進行改動。

新的問題:

要查英文文件,但是我沒有耐心閱讀英文怎麼辦?

我最終的解決辦法:

1.改變攝像機移動**,使得移動的主體是烏賊

2.原來穿出碰撞盒的原因是:後面還有碰撞盒,射線其實檢測到了後面的那個。所以,把岩石的碰撞盒都刪掉,然後調整一下大塊的碰撞盒,最後發現,即使將distance調整為5也ok的,真爽哦。

3.今天查碰撞點,學習到是:原來我們之前做的渲染作業是cpu計算,以及所有的畫素點都是從攝像機螢幕出發的射線和物體的交點。而且,所謂的圖形渲染,其實真的只是對圖形資料的處理,都是資料,真的。

問題描述:

解決方法:

2.在update函式中檢測 input.anykey。在這裡學到的知識點是,keydown是執行一次,但是getkey是每幀執行,適用於長按。

unity射線檢測碰撞

使用普通的碰撞體檢測,檢測時不連續的,是每隔0.02秒進行的離散檢測,這樣在被檢測的物體速度比較快時,就會由直接穿過物體的可能,這個時候,就需要使用射線檢測了。為了實現高速狀態下的碰撞檢測,要使用連續的射線來完成這樣乙個功能。使用 new ray建立射線new ray 發射位置,發射方向乘上發射速度...

Unity3D總結 關於射線碰撞

1.static function raycast origin vector3 direction vector3 distance float mathf.infinity layermask int kdefaultraycastlayers bool 乙個靜態的發射射線的方法,在場景中投下可...

Unity3D總結 關於射線碰撞

1.static function raycast origin vector3 direction vector3 distance float mathf.infinity layermask int kdefaultraycastlayers bool 乙個靜態的發射射線的方法,在場景中投下可...