チュートリアルを作る①(歩行入力)
こんにちは!
今日からチュートリアル場面を作っていきたいと思います!
今日の目的
今日はoculus touch コントローラーの左スティックでキャラクターを移動させることを目的にやっていこうと思います!
参考:
Sceneの作成
まず、チュートリアルの舞台となるSceneを作成します。
[File]→[NewScene]
今回はScene名を[tutorial]に設定しました。
地面の作成
ヒエラルキー上で右クリックし、[3D Object]→[Terrain]
これで地面ができました。
このTerrainオブジェクトは地形なども変えられるので今後のフィールド作成にも活用したいと思います。
プレイヤーの作成
oculus integrationの中にあるOVRPlayerControllerをインポートします。
oculus integrationはここからダウンロードできます。
移動プログラムの構築
今回の本題である、移動プログラムを書いていきます。
このプログラムは、記事の冒頭でリンクを貼らせていただいた「テンケイ的ブログ」さんのスクリプトを左スティック用に変更したものです。
事前準備
・OVRPlayerControllerの中にあるLeftHandAnchorとRightHandAnchorにOVRControllerPrefabを入れてください。
・左右OVRControllerPrefabのインスペクターからControllerをそれぞれL Touch,R Touchに変更してください。
新規スクリプトの作成
OVRPlayerControllerの中にあるOVRCameraRigにNew scriptを追加してください。
今からその中にscriptを書いていきます。
scriptの名前は自分の分かりやすいようにしてください。
ちなみに僕は[joystickMove]にしました。
プログラム
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR;
public class JoyStickMove : MonoBehaviour
{
void Update()
{
Move();
}
void Move()
{
Vector2 stickL = OVRInput.Get(OVRInput.RawAxis2D.LThumbstick);
Vector3 changePosition = new Vector3*1;
Vector3 changeRotation = new Vector3(0, InputTracking.GetLocalRotation(XRNode.Head).eulerAngles.y, 0);
this.transform.position += this.transform.rotation *(Quaternion.Euler(changeRotation) * changePosition);
}
}
動作確認
oculusアプリ開発用の設定をし、quest2をケーブルで繋ぎ、playボタンを押してテストプレイを開始してください。
左スティックを倒して視点が動けば成功です。
終わりに
基本的な移動方法はこれで完成です。
僕はこれから、speedステータスに合わせて速度を変更したり、ステップ移動を実装しようと思ってます!
*1:stickL.x), 0, (stickL.y