[Unity] 3D玉転がしアプリを作る

unity を使った 3D玉転がしアプリを作ってみたいと思います。3Dプリミティブの球体をiPhone/Androidの加速度センサーを使ってスマホを傾けると転がるようにします。
 

Unity 2017.1
iOS 10.3.3
Android 7.1.1




3D玉転がし

 
iPhoneとAndroidの加速度センサーは異なるAPIを使いますが、UnityではこれをInputクラスでまとめて使用できるようにしています。

  1. Unity で画面部品を配置
  2. 加速度センサーを使ったスクリプトを作成
  3. Unity RemoteXcodeを使ってiPhone/Android端末で実行

 

UI部品の配置

 
メニューから「GameObject」->「3D Object」->「Plane」で土台を作ります。
同様にで Sphere(ball), Directional light を設定して配置します
 

 
それぞれを左の「Hierarchy」でそれぞれを選んで、右側の「Inspector」で位置、回転、拡大を設定します。
 
Plane: Position, Rotation, Scale はデフォルトのまま
 

 
Sphere(ball): PositionPositionはY方向に「2」として浮き上がらせておきます。
他の Rotation, Scale はそのままの設定
 
 
Directional light: の設定はいい具合にボールに光が当たるようにします。
 

 
Main Camera: もともとありますが、画面を見る位置を決めます
 

 
このようになりましたでしょうか、これは「Scene」なので実際は「Game」で確認できます。
 

 
色の設定:Cube, Sphere に色を付けます
「Assets」->「Create」->「Material」
 

 
AssetsにNew Materialができます。名前をblueにしてInspectorから色を設定します。
 

 
Inspectorのスポイドの四角形をクリックするとパネルが現れるので青色に設定します。
 

 
Asset に出来上がった New Material のblueをドラッグ&ドロップで Planeに入れます
同様に、 Sphere を赤い色を設定します。

MainCameraでSceneを見ると「Camera Preview」で出来上がり画面の確認ができます。

RigidBody: ball を選択して「Component」「Physics」「Rigidbody」に設定します。

ballにRigidbodyの項目が追加されました。

 

加速度センサーを使ったスクリプトを作成

 
ball が上下左右の加速度で移動するようにスクリプトを作ります。
加速度センサー値は
 

 
のようにして取得できます。
 
ballRun.cs

 

Unity Remoteで実行

 
Unity Remoteで簡単に確認できます。

iPhone/AndroidにインストールしたUnity Remoteを起動しケーブルでPCと接続します。
 
「Edit」「Project Settings」「Editor」を選択します
 
スクリーンショット 2016-02-03 17.42.04
 
Editor Settingsのダイアログが表示されるので
「Device」を選択肢のiPhoneに設定します。(Androidの場合はAny Android Device)
 

 
上下左右に傾けるとボールが転がっていきます。
Unity Game:
 

 
iPhone: (Androidも同様です)
 

 

 

Reference:
モバイル端末の入力

ページのトップへ戻る





シェアする

  • このエントリーをはてなブックマークに追加

フォローする