2017-09-14 5 views
1

私はいつもプレイヤーと同じポジションにとどまりたいカメラを持っています。私はそれをプレイヤーの子にすることでこれを行いました。私がスクリプトでプレイしたとき、プレイヤーはカメラよりも先に進んでいたからです。私はまたカメラをマウスで回転させる。しかし、カメラをプレイヤーの子にしたとき、私のプレーヤーとカメラは回転を止めず、マウスが動かなくなっても続行します。私はマウスが動いているときだけカメラを回転させたい。私のコード(JS):ユニティ - プレーヤーのカメラチャイルドが制御不能に回転する

#pragma strict 
var player : GameObject; 
function Start() { 
    player = GameObject.Find("Player"); 
    Cursor.visible = false; 
} 

function Update() { 
    //transform.position = player.transform.position; 
    transform.Rotate(Input.GetAxis("Mouse Y") * -2, Input.GetAxis("Mouse X") * 5, 0); 
    transform.rotation.eulerAngles = new Vector3(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, 0); 
    //player.transform.rotation = transform.rotation; 
} 

まずコメントアウト線がプレイヤーにカメラを移動今不要なコードでは、2行目は、問題の原因となっているものです。私がそれを取り除くと、カメラはうまく回転しますが、プレーヤーは回すことができません(transform.forwardベースのコントロール)。コメントを外すと、プレイヤーとカメラは摩擦がなくなり、制御できなくなります。

+0

あなたはユニティサンプルプロジェクトからプレハブカメラを試してみたことがありますか?彼らは第三者などのようなクールな作業カメラを持っています。あなたはコードを見たり、単にそれを使うことができます。 –

+0

ありがとう、私はちょうどそれを行うかもしれません。 – battlemage64

+0

グッドニュース!問題は、それがプレーヤーを回転させた後、プレーヤーの子としてカメラを回転させ、広告の邪魔を繰り返すことでした。それを修正しようとしています。 – battlemage64

答えて

0

これは実際にマウスルックコントローラーを作成する方法ではありません。あなたはこれらのコントローラを見てみる必要があり :

https://forum.unity.com/threads/a-free-simple-smooth-mouselook.73117/

http://wiki.unity3d.com/index.php/SmoothMouseLook

それとも、これは1をJS:http://answers.unity3d.com/answers/367253/view.html

+0

ありがとう!私はかなり新しいので、私が考えることができる最もシンプルなものを作ろうとしていました。 – battlemage64

+0

物事を壊すのを恐れないでください - それは学習プロセスの一部です – Fiffe

+0

修正済み!私はリンクを見て、最終的にカメラがプレーヤーの子であり、マウスがプレーヤーを回転させる解決策を見つけました。カメラの回転スクリプトはすべてメインプレイヤーに組み込まれており、すべてうまく動いています。みんな、ありがとう! – battlemage64

関連する問題