全然伝わらないと思うんですがコントローラーで動かしているわけじゃないです!
リアルで前に進んだ時に階段を上ってます
C#
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class PositionUpdate : MonoBehaviour {
6 [SerializeField] private Transform parent;
7 [SerializeField] private Transform eyeCamera;
8 [SerializeField] private CharacterController characterController;
9
10 private Vector3 prevPos;
11 private float offset;
12
13 private void Start() {
14 prevPos = eyeCamera.position;
15 offset = (parent.position - characterController.transform.position).y;
16 }
17
18 private void Update() {
19 characterController.Move(eyeCamera.position - prevPos);
20 prevPos = eyeCamera.position;
21
22 if (!characterController.isGrounded) {
23 characterController.Move(Physics.gravity);
24 }
25
26 Vector3 pos = parent.position;
27 pos.y = characterController.transform.position.y + offset;
28 parent.position = pos;
29 }
30}
上の通りに設定してもらったら動くと思います
Quest2で試していますが多分Questでも大丈夫
OVRPlayerControllerを利用し~
Oculusのコントローラーを使用すれば~
と書いてあったのでOVRPlayerControllerで使われてるCharacterControllerを利用して同じような動作をするようにしてます
初めに思いついた方法をバーっと書いたので、無駄なことをしてる、またはもっと簡単な方法があるかもしれないです
・備考
カメラはHierarchyウィンドウから作ったまま初期設定です
Position等の値は適当に変えてもたぶん大丈夫だとは思いますが検証してませんのでまずはそのままで
階段はただのCubeの塊です当たり判定は見た目通り
・環境
Unity 2019.4.11f1
Oculus Quest2
Oculus Integration Version 20.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/22 10:41
2020/12/22 11:30 編集
2020/12/23 06:11