視覚教材幅対厚さ
(レイキャスティング使用):here厚さと幅の決定方法は?
は短いGIFを表示してください。
外筒と内筒があるため、厚さは幅とは異なります。厚さは、厚さが一方の端部から他方の端部までの間の中空空間を包含する他方の端部までの距離であるシリンダの任意の側の外壁/内壁の間の距離の測定値である。 GIFファイルに
クイック概要は
-Onを提供すべて((オレンジ)オーブは、距離を計算するために使用される場合、ユーザーがクリックと解釈エンドポイントを表すために作成された原点(青)と目的地点をクリックGUIに表示されます)。
原点は、オブジェクトコライダーのサーフェス上でクリックする場所を定義し、送り先は、原点のワールドY軸に垂直な点を定義します。第2のレイが第1のレイに向かって投射し、コライダー。
電流:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
//obtain the vector where the ray hit the collider.
hitPoint = hit.point; //origin point
//offset the ray, keeping it along the XZ plane of the hit
Vector3 offsetDirection = -1 * hit.normal;
//offset a long way, minimum thickness of the object
ray.origin = hit.point + offsetDirection * 100;
//point the ray back at the first hit point
ray.direction = (hit.point - ray.origin).normalized;
//raycast all, because there might be other objects in the way
RaycastHit[] hits = Physics.RaycastAll(ray);
foreach (RaycastHit h in hits)
{
if (h.collider == hit.collider)
{
hitBack = h.point; //destination point
}
}
}
現在、幅が場所で機能です。私は(gifに見られるように)オブジェクトの内部に入ることなく、厚さを計算したいと思います。
アメージング参照
http://answers.unity3d.com/questions/386698/detecting-how-many-times-a-raycast-collides-with-a.html
この男は、基本的には私と同じ疑問を持っていたし、おそらく仕事ができるソリューションを持っています。私はLinecastingとRaycastingがどのように連携しているか分かりません。
[チャットでこのディスカッションを続行しましょう](http://chat.stackoverflow.com/rooms/151438/discussion-between-ryemoss-and-jthth) – ryeMoss