今回のエンジニアブログを担当する、廣田です。
今回はUnityのStandard Assetsから汎用的なスクリプトの一部を紹介したいと思います。
まずは準備として、Standard Assetsのスクリプトをインポートします。
メニューから[Assets]→[Import Package]→[Scrpts]を選択します。
クリックをすると、インポートするパッケージの内容が表示されるので、Importを選択して読み込みます。
Projectウィンドウ内に、先ほどインポートしたスクリプトが入っていれば、読み込み完了です。
次にスクリプトの説明で使用する、オブジェクトを用意しましょう。
メニューから[GameObject]→[Create Other]→[Cube]を選択します。
これでシーンに、Cubeが追加されたと思います。
同じように[Plane]・[Directional light]を選択してオブジェクトを作成します。
Hierarchyウィンドウに各種オブジェクトが追加されていれば作成完了です。
このままでは、PlaneとCubeが重なっているので、Planeの位置を下げてあげましょう。
HierarchyウィンドウからPlaneを選択します。
すると、Inspectorウィンドウに詳細が表示されます。
次に、InspectorウィンドウのPositionの欄にあるY座標を選択して、0.5ほど数値を下げます。
これでCubeとPlaneの位置が調整できたと思います。
以上で準備完了です。
インポートしたファイルには、5つのスクリプトがあります。
(バージョンによっては数が違うかもしれません)
今回はActivateTriggerを除くスクリプトを、上から順に簡単に説明していこうと思います。
1.MouseOrbit
カメラにこのスクリプトを追加する事で、指定したターゲットを中心に、カメラをマウスで自由に回転させる事ができるようになります。
試しに、カメラにこのスクリプトを追加してみましょう。
HierarchyウィンドウからMain Cameraを選択します。
次にProjectウィンドウから、MouseOrbitスクリプトをInspectorウィンドウにドラッグ&ドロップします。
スクリプトの追加がうまくいくと、項目が追加されます。
次にカメラのターゲットを設定しましょう。
カメラが選択された状態で、InspectorウィンドウのTargetの欄にHierarchyウィンドウから、Cubeをドラッグ&ドロップします。
Noneになっていたところが、Cubeとなっていれば追加は成功です。
これで準備は完了です、シーンを実行してみましょう。
マウスを操作してカメラがCubeを中心に動けば成功です。
2.SmoothFollow
カメラにこのスクリプトを追加する事で、指定したターゲットをカメラが追従するようになります。
先ほどと同じように、スクリプトの追加・ターゲットの指定をして実行してみましょう。
(先ほどのスクリプトが残っている場合は、スクリプト名の隣のチェックを外すか、
スクリプト名を右クリックして[Remove Conponent]を選択して削除しましょう)
シーンウィンドウでCubeを動かすと、カメラが追従してくれます。
3.SmoothLookAt
カメラにこのスクリプトを追加する事で、指定したターゲットの方向にカメラが向くようになります。
こちらも先ほどと同じように、スクリプトの追加・ターゲットの指定をして実行してみましょう。
シーンウィンドウでCubeを動かすと、カメラの向きがCubeの方向へ向いてくれます。
4.DragRigidbody
オブジェクトにこのスクリプトを追加する事で、マウスドラッグでオブジェクトを動かすことができるようになります。
スクリプトを追加する前に、オブジェクトにRigidbodyコンポーネントを追加します。
Hierarchyウィンドウから、Cubeを選択し、メニューの[Component]→[Physics]→[Rigidbody]を選択します。
スクリプトの追加がうまくいくと、CubeにRigidbodyの項目が追加されます。
後は前項と同じように、CubeにDragRigidbodyを追加しましょう。
シーンを実行して、Cubeをマウスでドラッグすると動かせるようになります。
このように、標準で入っているUnity汎用スクリプトを利用する事で、色々な事をする事ができます。
この他にもキャラクターコントローラー等の便利なスクリプトも存在するので、調べてみるのも面白いと思います。
さて、今回はUnity Standard Assetsの汎用スクリプトについて、お話しさせていただきました。
次回もUnityのお話をできればいいなと思っています。
それではまた次回!