Unityの2D空間にて、オブジェクトA、B(いずれもCircleCollider2Dコンポーネント有り)がある状態で
オブジェクトBをオブジェクトAの位置へ徐々に移動するような処理を作成しました。
その際に、そのまま移動すると最終的にオブジェクトAとBの位置が重なってしまうため、Collider判定がギリギリ重ならない位置で停止するために下記値をそれぞれ求めました。
①オブジェクト間の距離
Vector2.Distance(ObjectA.transform.position, ObjectB.transform.position)
②オブジェクトAのCollider半径
ObjectA.GetComponent<CircleCollider2D>().radius
③オブジェクトBのCollider半径
ObjectB.GetComponent<CircleCollider2D>().radius
②+③の距離よりも①の距離が小さくなる場合は移動処理を行わないように制御を追加したのですが、Colliderが重なるまで移動しても①で取得される距離が②+③の距離よりも大きな値となってしまいます。
①のDistanceで取得される値はObjectの中心からの距離かと思っていたのですが、違うのでしょうか?

回答1件
あなたの回答
tips
プレビュー