Unity3Dの世界座標とローカル座標の関係、

             Unity3Dの世界座標とローカル座標の関係、


目次

1.ブログ投稿の概要

2.コンテンツ

(1)相対性

(2)世界座標

(3)ローカル座標

(4)ローカル座標をワールド座標に変換します

(5)世界座標をローカル座標に変換する

3.プッシュ

4.結論


1.ブログ投稿の概要

Unity3Dのワールド座標とローカル座標、および両者間の相互変換について話します。


2.コンテンツ

(1)相対性

まず第一に、私たちが理解しなければならない最も重要なことは、位置の相対性です。お互いを比較することによってのみ、私たちは位置を判断することができます。

(2)世界座標

ワールド座標は、Unity3Dのワールド座標系を参照して、最高レベルのオブジェクトに対応する唯一の位置です。最上位のオブジェクトの場合、インスペクターパネルの位置はワールド座標です。TransformAPIには、オブジェクトのワールド座標を直接取得できるpositionプロパティがあります。どのレベルでも、取得されるオブジェクトは次のようになります。オブジェクトの位置。唯一の世界座標。

(3)ローカル座標

ワールドゼロポイントを参照システムとしてではなく、任意のオブジェクトを参照システムとして取得した位置情報は、ローカル座標です。たとえば、オブジェクトA、そのサブオブジェクトB、およびインスペクターパネルのBの位置情報は次のとおりです。 BからAはゼロ点によって取得されたローカル座標であるため、メッセージを受け取ることができます。BがAの子ではなく、Aと同じレベルにある場合、Bの座標は前のローカル座標と同じである必要があります。座標+ Aの座標。Aがワールド座標のオブジェクトである場合、結果はBのワールド座標になります。

(4)ローカル座標をワールド座標に変換します

(1)から、オブジェクトの世界座標は、transform.positionを介して直接取得できることがわかります。

(3)から、オブジェクトAの親Bがワールド座標系のオブジェクトである場合、オブジェクトAのワールド座標=オブジェクトAのローカル座標+ Bのワールド座標であることがわかります。

Transform APIは、任意のポイントに対するオブジェクトのワールド座標の位置を取得できるメソッドTransformPointを提供します。したがって、以下のvectの値はキューブのワールド座標です。

var vect = cube.TransformPoint(new Vector3(0,0,0));

(5)世界座標をローカル座標に変換する

Transform APIは、別のオブジェクトを基準にした任意のオブジェクトのローカル座標を取得できるメソッドInverseTransformPointを提供します。次のコードでは、立方体がfatの子である場合、値vectはローカル座標です。 

public Transform fat;

public Transform cube;

var vect = fat.InverseTransformPoint(cube.transform.position);

3.プッシュ

博主Github:https//github.com/KingSun5


4.結論

        ブロガーの記事がよく書かれていると思われる場合は、ブロガーに注意を払い、ブログ投稿を気に入ってください。また、ブロガーの能力は限られています。記事に誤りがある場合は、コメントして批判してください。 。

       QQ交換グループ:806091680(中国人)

       このグループは、CSDNブロガーのChinarによって作成されました。お勧めします。私もグループにいます!

       この記事はオリジナル記事ですので、有名作家の出典を転載してトップにこだわってください!

 

おすすめ

転載: blog.csdn.net/Mr_Sun88/article/details/98123268