OSC's絵日記

そのうち書くよ

【Unity VR】移動範囲の制限(円形状の透明な柵みたいな感じ)

>|cs|
if (Input.GetKey(KeyCode.W) || OVRInput.Get(OVRInput.Button.PrimaryThumbstickUp) || OVRInput.Get(OVRInput.Button.SecondaryThumbstickUp))
        {
            var forward = Head.forward;
            forward.y = 0;
      //加算式
            thispos += forward.normalized * Time.deltaTime * Scale;
//現在位置(ex11,11,11←制限) = スポーン位置(ex10,10,10) + 3次元制限(現在位置(ex11,12,13) - スポーン位置(ex10,10,10),制限値(ex1))
            thispos = kijyun + Vector3.ClampMagnitude(thispos - kijyun, radius);
            transform.position = thispos;
      }
>||

コードの貼り付け方法がよくわからん。

上記は一方向のみのコードだが中身はこういうこと。wキーやVRのスティックを前に倒すと移動範囲内で進む。範囲限界で自動的にひっかかるようになっている。

参考コードが(transform.position = Vector3.ClampMagnitude~)な直接座標指定

対してこっちのコードが (transform.position += forward.normalized~)な加算式だったからしばらく思考停止してしまった。

組み合わせた解が上記のコードになった。

 

エスト2は8月から倍に値上げ。もとからVRの住民だったから機器は2つ(1つ壊れた)もってるけど高くて壊れたら買えないだろうなあ。割と30万からの世界って言われてたくらいの世界なんで原住民にはあんまり影響はないと思うけども