40
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

モバイルファクトリーAdvent Calendar 2015

Day 15

【Unity】スワイプとピンチでカメラをグリグリ動かせるライブラリを作った

Last updated at Posted at 2015-12-15

 モバイルファクトリー Advent Calendar 2015 15日目担当の@kazuman519です。

はじめに

 先日あるハッカソンでゲームを作った際に、特定のオブジェクトをスワイプとピンチでカメラをグリグリ動かして眺めまくれる機能が欲しかったのですが、ぱっと見見当たらなかったので自作しました。
 これがあれば、
「キャラクターの詳細画面でグリグリしてキャラクターを眺めたい!」
「ステージ選択画面でステージをいろいろな角度から客観的に眺めたい!」!

などといった場面で使えるかもなぁと持ったので、簡単に使えるような形にしてgithubに公開しました。
URL : ObservationCamera

 今回は此方の使い方の紹介をしようと思います。

リポジトリの構成

  • 今回のキモとなるスクリプト「ObservationCamera.cs」はObservationCamera/Assets以下にあります
  • また、サンプルプロジェクトを用意してあり、ObservationCamera/Assets以下にあるMainScene.unityからunityを起動すれば動作を試すことができます

使い方

1. ObservationCameraオブジェクトの作成

 まず、ObservationCameraスクリプトを貼り付けるためのオブジェクトと、眺めるオブジェクトを用意します。
スクリプトを貼り付けるオブジェクトの準備として、
Empty Objectを2つ、Camera Objectを1つ作ってください。
 今回の説明ではEmpty Objectの名前は「ObservationCamera」と「CameraFixObject」、
Camera Objectの名前は「Camera」、
眺めるオブジェクトの名前は「TargetObject」といった名前で説明していきます。

 親子関係は以下のようにしてください。

スクリーンショット 2015-12-15 18.13.29.png

2. それぞれのオブジェクトの配置と役割

ObservationCamera

  • カメラを上下左右に回転させるためのベースとなるオブジェクトになります
  • 「TargetObject」と同じポジションに配置してください

CameraFixObject

  • カメラのポジションとローテーションを固定するオブジェクトになります
  • カメラの高さと角度を調整したい場合はこのオブジェクトのポジションとローテーションを触って調整します
  • このオブジェクトの子としてカメラを持たせることで、ズーム機能実装時に角度と座標の計算といった面倒なことをする必要がなく、Cameraオブジェクトのz軸の移動のみでズームが出来るようになっています

Camera

  • カメラです
  • 基本的にポジションとアングルは全て0にしておいてください

3. スクリプトの設定・プロパティの役割

 後は、上の作業で作成した「ObservationCameraObject」にObservationCameraObjectスクリプトを貼り付けます。
貼り付けると以下のようなプロパティが弄れるようになります。

スクリーンショット 2015-12-15 20.26.35.png

各プロパティの役割

  • Camera
    • オブジェクトを眺めるためのカメラです
  • isAutoRotate
    • 最初に自動で回転させておくかのフラグです
  • MinCameraAngleX
    • カメラの最小角度です
  • MaxCameraAngleX
    • カメラの最大角度です
  • SwipeTurnSpeed
    • スワイプで回転するときの回転スピードです
  • PinchZoomSpeed
    • ピンチするときのズームスピードです
  • AutoRotateSpeed
    • 自動で回転させるときの回転スピードです

以上の設定ができれば動かせるようになっていると思います。
※注意点として、ピンチによるズームインズームアウトはiOS/Android端末でビルドしないと確認できないのが少し不便です。

突貫でgithubにあげたものなので、まだドキュメントなど全然整っていないですが、
その辺りは今後整備していこうかと思います。

明日は@mattak@githubさんです。
kotlinの話らしいので楽しみです!

40
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?