見出し画像

Unity オブジェクトを中心にカメラを回す、注視点回転のやり方

どうも、マカロンです。

今回は物体を中心にしてカメラを回す注視点回転のやり方を紹介していこうと思います。

これやり方は簡単なんですけど、ネットで検索したところほとんどやり方が出てこなかったので私の方で記事にしてみました!

まずは「完成形」のイメージをご覧ください。

画像1

中心のオブジェクトを軸にカメラが回転しています。
今回はこれを作っていこうと思います!それでは行きましょう!!

注視点を決める

今回でいうと中心の大きめのブロックがカメラの注視点となるので、まずはカメラに注視点にしたいオブジェクトの情報を渡しましょう。

public GameObject targetObject; // 注視したいオブジェクト

これは後でインスペクタ上でセットできる状態にしておきます。




指定した軸を基準に回転!RotateAround

これを使うことによっていとも簡単に注視点回転をさせることが出来ます。

transform.RotateAround(targetObject.transform.position,new Vector3(0,1,0), 0.5f);

RotateAround引数解説
第1引数 : 注視点にしたいオブジェクトのポジション
第2引数 : 回転したい方向軸
第3引数 : 回転速度

第2引数の回転したい方向軸は上記の注視点回転をする場合はY軸を起点(横回り)に回転したいのでnew Vector3(0,1,0)となる。

これだけで中心のオブジェクトを軸にカメラが回転します!




これで意図した動きはできたけど...

画像2

このままだとオブジェクトに真っ暗な部分が出来てしまいます。

カメラを回しているだけなのでライトの当たる場所は変わりません。

ということでカメラと一緒にライトも回して常にライトに照らされてる面をカメラに映し出しましょう!

キャプチャ

方法はカメラの中にライトを入れてあげるだけです。

そんだけ(笑)


これでこの記事でいうところの「完成形」の状態になったかと思います!




最後に

久しぶりにUnityの簡単な機能の紹介が出来ました。

でもこういう基礎的なことが最初のうちはわからないのにそれを丁寧に解説してくれてる記事って少ないと思うので、こういう細かなお役立ち情報をこれからも更新していきたいです!

久しぶりに「最後に」の中もちゃんとしたこと書いてる気がする...

ではまた!

ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです