Unity

Unityでスマホ対応のVRを作ろう

投稿日:2018年11月9日 更新日:

今回やること

VR空間の宝島を冒険して宝を探すゲームをUnityで作ります
バージョンは2018でやっていますが恐らく他のバージョンでも問題ないと思います

  • VR用のカメラを入れる
  • UnityRemoteのダウンロードと接続
  • プレイヤーを動かす
  • 宝箱を置く
  • 宝箱を取ったらクリア出来るようにする
  • エフェクトや動物を追加する

VR用のカメラを入れる

既に設定をしてあるものをこちらに作っておきましたのでダウンロードしてインポートして下さい
パッケージのインポートの仕方はこちらを参考にしてください

UnityRemoteのダウンロードと接続

PCとスマホを接続してお手軽にVRを楽しむにはUnityRemoteというアプリが必要です
UnityRemoteはPCと接続してUnityでテストプレイすると画面をスマホに写してくれます

UnityRemoteの使い方
Android/ios端末
  • アプリを起動する
  • PCと接続する(必ず充電用ではなくデータ通信用を使う)

Unity

  • テストプレイを実行する

以下トラブルシューティングを基に確実に設定しましょう

UnityRemoteが繋がらない時のトラブルシューティング
Android端末

  • 提供元不明のアプリにチェック
  • USBデバッグにチェック
  • Unityremoteをダウンロード

ios端末

  • PCを信頼する
  • ituneと同期させる

PC

  • JAVAのインストール
  • Android SDK のインストール
  • 各自持っている端末にしたがってADKドライバを手に入れる(機種名、ドライバ、ダウンロードで検索)
  • デバイスマネージャーで端末にドライバを認識させる

Unity

  • JAVA と ANDROID SDK、2つのPATHを通す(Edit → Preference → External Tools → Android SDK、Android JDK)
  • Edit → Project Setting → Editor → device で any andoroid device(iphoneの場合は繋ぐと機種名が表示されるのでそれを選択)
  • file → build setting でアンドロイド(iphoneの場合はios)にプラットホームを合わせて
    switch platform する
  • file → build setting でシーンを add current する

以上でスマホの画面にUnityの画面が映るようになります

VRのフィールドを作ろう

フィールドは今回、Unityのterrainという機能を使って作ります
terrainの使い方はこちらにまとめておきましたので作ってみて下さい
画像のようにできたら、次に進みます

プレイヤーを動かそう

プレイヤーを動かします
仕組みとしては今スマホの向きに合わせてプレイヤーの向きが変わるようになっています
なので、向いている方向に自動で進むようにします
また、重力処理もかけておきましょう
今回はCharacterControllerを使っていきます
まずは、Playerスクリプトを作成します
こちらを参考にスクリプトを作成しましょう

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {

	public float Walk;//歩く速さの変数
	private CharacterController charactercontroller;//CharacterControllerの変数
	private Vector3 velocity;//重力をかけるための変数

	// Use this for initialization
	void Start () {
		charactercontroller = GetComponent<CharacterController> ();//CharacterControllerを取得
	}
	
	// Update is called once per frame
	void Update () {
		transform.position += transform.TransformDirection(Vector3.forward * Walk * Time.deltaTime);//プレイヤーが向いている方向にWalk*時間の経過分だけ進む
		charactercontroller.Move (velocity);//charactercontrollerをvelocityの分だけ動かす
		velocity.y += Physics.gravity.y;//velocityのy軸の移動は重力の分だけ動かす
	}
}

上手くいっていると、このようにスマホを向けた方向にプレイヤーが進みます

宝箱を置こう

Assets → Prefabs → Chest にある宝箱を作成したステージに好きなように置きます

宝箱を取ったらクリア出来るようにしよう

宝箱に触れたらClearの文字が出るようにします
Playerスクリプトに以下のように追記しましょう

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {

	public float Walk;
	private CharacterController charactercontroller;
	private Vector3 velocity;
	public GameObject Clear1;//追記部分、右のカメラのClearの文字を指定
	public GameObject Clear2;//追記部分、左のカメラのClearの文字を指定

	// Use this for initialization
	void Start () {
		charactercontroller = GetComponent ();
		Clear1.SetActive(false);//追記部分、右のカメラのClearの文字を非表示にする
		Clear2.SetActive(false);//追記部分、左のカメラのClearの文字を非表示にする
	}
	
	// Update is called once per frame
	void Update () {
		transform.position += transform.TransformDirection(Vector3.forward * Walk * Time.deltaTime);
		charactercontroller.Move (velocity);
		velocity.y += Physics.gravity.y;
	}

	void OnCollisionEnter(Collision col)//追記部分ここから、衝突判定の処理
	{
		if (col.gameObject.tag == "Chest") {//衝突したオブジェクトのタグが"Chest"なら
			Clear1.SetActive(true);//右のカメラのClearの文字を表示する
			Clear2.SetActive(true);//左のカメラのClearの文字を表示する
		}
	}//追記部分ここまで
}

Canvas → Clear1とClear2をPlayerのPlayerスクリプトにD&Dします

宝箱に触れるとClearの文字が出ます

エフェクトや動物を追加しよう

Assets → Prefabs → Animals または Effectsにあるエフェクトや動物を作成したステージに好きなように置きます

できたらLet’s embark on a journey!!

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

-Unity

執筆者:


  1. […] UnityでVRを作成します 以前にこちらでも作成しましたが、動きや攻撃などを加え、より本格的なゲームになるように仕上げていきます […]

comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

UnityでRigidbodyを使ってアスレチックアクションを作ろう

今回作るゲーム 移動やジャンプをして、ゴールを目指すシンプルなアクションゲームです 今回やること プレイヤーの移動 プレイヤーのジャンプ アイテムを配置する 制限時間を作る パッケージのダウンロード …

UnityでRayに合わせてレーザーを出す

素材

Unityで複数の効果音を鳴らす

SE 効果音素材入れる Assets → Import New Assetをおします 入れたい素材を選択し、Importをおします スクリプトの作成 以下スクリプトを作成して効果音を鳴らしたいオブジェ …

Unityでデータベースを作成する

はじめに 膨大な数の位置情報や、ゲームのアイテム、キャラクターなどの管理はデータベースを作成し、そこから引っ張り出す形にすると便利です 今回はそんなデータベースを作成していこうと思います データベース …

no image

Unityのパッケージをインポートする方法

下記画像のようにAssets → ImportPackage → CustomPackageの順に押してインポートしたいパッケージを選びます。それだけですw

ゲタバコ倶楽部へようこそ

  • 300739総閲覧数:
  • 22今日の閲覧数:
  • 231532総訪問者数:
  • 19今日の訪問者数:

住所
Akita,Japan

営業時間
月~日: 10:00 AM – 10:00 PM

このページはゲタバコ先生の日々思うことや活動、プログラミングの習得方法を発信するページです。
仕事のご依頼、メッセージ等、サービス概要をご覧の上で、お気軽にご連絡ください。

getabakosensei@gmail.com