Unity3Dの世界座標とローカル座標の関係、
目次
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によって作成されました。お勧めします。私もグループにいます!
この記事はオリジナル記事ですので、有名作家の出典を転載してトップにこだわってください!!!!