今回やること
VR空間の宝島を冒険して宝を探すゲームをUnityで作ります
バージョンは2018でやっていますが恐らく他のバージョンでも問題ないと思います
- VR用のカメラを入れる
- UnityRemoteのダウンロードと接続
- プレイヤーを動かす
- 宝箱を置く
- 宝箱を取ったらクリア出来るようにする
- エフェクトや動物を追加する
VR用のカメラを入れる
既に設定をしてあるものをこちらに作っておきましたのでダウンロードしてインポートして下さい
パッケージのインポートの仕方はこちらを参考にしてください
UnityRemoteのダウンロードと接続
PCとスマホを接続してお手軽にVRを楽しむにはUnityRemoteというアプリが必要です
UnityRemoteはPCと接続して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!!
コメント
コメント一覧 (3件)
[…] VR […]
[…] UnityでVRを作成します 以前にこちらでも作成しましたが、動きや攻撃などを加え、より本格的なゲームになるように仕上げていきます […]