2017-09-02 30 views
0

私は地面に水平に見えるカメラを使ってトップダウンゲームをしています(つまり、それは下に90度傾いています)。私はマウスの位置に従うタレット回転を作っています。ユニティ3Dで親の回転に従うように子供を作る方法

私は正常にマウスを見るようにしましたが、ランプに向かうときはいつでも、スクリーンショットで見るように親として回転しません。

Ship Orientation on ramp

Zoomed view to turret

私は、大砲の親である空のゲームオブジェクトにスクリプトを持っています。私は現在、私は空のゲームオブジェクトは、親の回転(私は船に言及しています)従うようにするにはどうすればよいの更新()関数

Vector3 v3T = Input.mousePosition; 
v3T.z = Mathf.Abs (Camera.main.transform.position.y - transform.position.y); 
v3T = Camera.main.ScreenToWorldPoint (v3T); 
transform.LookAt (v3T); 

内のコードの行を持っていますか?

+0

タレットはあなたの船の子ですか? – ZayedUpal

+0

@ZayedUpalはい、大砲を子として保持する空のゲームオブジェクトがあります。その上に同じ空のゲームオブジェクトは、これらのコードが配置されています。 – skildfrix

答えて

1

キャノンはy軸上でのみ回転できます。このように:

transform.localEulerAngles = new Vector3(0,transform.localEulerAngles.y,0); 

LookAt機能の後に上記のコードを追加します。上の0をタレットの開始xとyのオイラー角に置き換えることができます。

+0

すごい!それは機能しましたが、あなたはこのように構造化する必要があります。 'transform.LookAt(v3T); transform.localEulerAngles = new Vector3(0、transform.localEulerAngles.y、0); ' オイラーアングルを初めて使用しましたが、とにかく感謝しています! – skildfrix

関連する問題