3Dのスマホゲームを製作しています。
画面をスワイプした時に、対象となるオブジェクトを
縦スワイプなら画面上の横軸を基準に縦回転、横スワイプなら画面上の縦軸を基準に横回転。
という風に、オブジェクトをワールド軸でもオブジェクトのローカル軸でもなく、カメラのローカル軸を基準に回転させたいです。
(追記:オブジェクトの位置はそのままに、回転方向だけをカメラのローカル軸基準で回転させたいです。)
それにはどのようにスクリプトを書けばよいでしょうか?
試したこと。
まずは片方向だけをと思って以下のスクリプトを書いたのですが、実装したいものとは全く別物の回転になってしまいました。
selectedObj.transform.Rotate(mainCamera.transform.up* horDis * rotateSpeed);
selectedObj...回転させるオブジェクト
mainCamera...メインカメラ
horDis...スワイプの水平方向の値
rotateSpeed...インスペクタ上で調整できる値
です。
transform.rightやtransform.forwardにしてもうまくいきません。
方向の設定ミスというより、そもそもメインカメラのローカル軸をセットできていないように感じました。
回答よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/10 07:13
2017/10/10 07:22