2017-04-20 12 views
0

私はそれがシンプルだと感じますが、私は解決策をオンラインで探していて、適切な結果を見つけることができません。
transform.Rotate(0, Time.deltaTime, 0);親の回転時に子供の位置が変わらない

は私が親と一緒に回転する。この球に取り付けた子オブジェクトを持っている:

は、私は単純なスクリプトを使用して、Y軸を球を持っており、それが徐々にそれに回転しているのです。ここまでは順調ですね。

I子の中心にピボットを配置していると私はそれが親を使用して回転されるように、子オブジェクトの位置を取得することを試みた:

void Update() 
{ 
    Debug.Log(this.transform.position); 
} 

更新はの位置を提供するがあたかも親から繋がれていないかのように。

球の親に更新されたときに子の位置を取得する方向に私を指すことができますか?

ありがとうございました。

答えて

2

本当にわかりません「球の親に更新されたときに子の位置がわかります」という意味ですが、試してみます。
Vector3 relativePosition = Child2.transform.position - Sphere.transform.position;

:あなたは CHILD2の位置を取得したい場合、あなたはこのような何かを行うことができます

-- Sphere (rotating along its Y axis) 
    -- Child (that rotates with "Sphere" parent) 
    -- Pivot (in the center of the "Child" object and rotating along its Y axis) 
     -- Child2 (that rotates with "Pivot" parent) 

私はあなたの階層は次のようになりますと仮定します

Transform.localPositionを使用して、オブジェクトの親に対する相対位置を取得することもできます。ピボット - 私は新人のミスのビットを作っていた - これは、トラブルシューティングのために非常に有用であった、このことができます
Vector3 relativePosition = Child.transform.localPosition + Pivot.transform.localPosition + Child2.transform.localPosition

希望、

+1

こんにちはKardux:この場合、あなたはそれをこの方法を使用することができます子供はモデルの中心にいました。いったんこのピボットをリセットしてそれを再インポートしたら、それはあなたが持っていた元のコードと一緒に働きました。基本的に、子の位置を更新して、コードをラインレンダラーで使用するようにしました。あなたの時間と忍耐力に感謝します。 –

+0

ピコットアライメントオブジェクトで周りを遊んでいるときに間違って配置されたピボットは、あなたの心をかなり速く台無しにする可能性があります:)喜んで助けました! – Kardux

関連する問題