回答編集履歴

2

RayCastの代わりにCircleCastを用いる

2020/09/04 10:01

投稿

Nicholas
Nicholas

スコア0

test CHANGED
@@ -71,3 +71,17 @@
71
71
  進行方向上へ放射したRayのぶつかった先と実際の衝突位置は異なる問題がありました。
72
72
 
73
73
  これの根本的解決方法は今のところ思いつきませんが、少なくとも半径長さのRayでは角度がついた衝突でRayの衝突先を見失う可能性があるため、これより多少長さを伸ばす必要性はあります。
74
+
75
+
76
+
77
+ ---
78
+
79
+ 追記(2020.09.04 19:00)
80
+
81
+ ボールの大きさが無視できるならRayCastで問題ないはずですが、実際は大きさを持っているのでRayCastの代わりにCircleCastを使うとよさそうです。
82
+
83
+ Circleの半径をボールの半径と同じにしてCastすれば理論上は問題ないように思われます。
84
+
85
+ しかし実際に動かしてみると、処理速度の関係なのか、たまに壁をすり抜けてしまうことがありました。
86
+
87
+ その不具合を抜きにしても、結局やっていることは(デメリットを含めて)Dynamicでやっていることと同様なので、全てキネマティックだと全てTriggerにできるというメリット以外は素直にDynamicで動かすことに諦めた方がいいかもしれません。

1

RayCast衝突位置について修正

2020/09/04 10:01

投稿

Nicholas
Nicholas

スコア0

test CHANGED
@@ -59,3 +59,15 @@
59
59
 
60
60
 
61
61
  BallやCircle Colliderでなくても、放射するRayの長さを上手く設定すれば問題ないと思います。
62
+
63
+
64
+
65
+ ---
66
+
67
+ 追記(2020.09.02 21:50)
68
+
69
+ 正面衝突であればこれで問題ないものの、角度がついた状態でぶつかることを考えると、
70
+
71
+ 進行方向上へ放射したRayのぶつかった先と実際の衝突位置は異なる問題がありました。
72
+
73
+ これの根本的解決方法は今のところ思いつきませんが、少なくとも半径長さのRayでは角度がついた衝突でRayの衝突先を見失う可能性があるため、これより多少長さを伸ばす必要性はあります。