前提
ここに質問の内容を詳しく書いてください。
UnityとARFoundationを用いて、ARのアプリケーションの作成をしています。
実機の方でマーカー認識によって出現したオブジェクトを自由に動かすことのできるようにしたいのですが、以下のスクリプトでは動かすことができませんでした。
推測にはなるのですが、マーカー認識によって位置が上書きされてしまっているのかなと考えています。
ですのでマーカーを認識した際、もしくは実機でオブジェクトに触れた際にトラッキングを止めれば解決するのかなというところまではたどり着いたのですが、どのようなコードを書けばよいかが見当がつかず困っているところです。
実現したいこと
マーカーを認識した際、もしくは実機の画面でオブジェクトに触れた際にマーカーのトラッキングを止めたい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class MainCharacter : MonoBehaviour 6{ 7 8 9 // Start is called before the first frame update 10 void Start() 11 { 12 13 } 14 15 // Update is called once per frame 16 void Update() 17 { 18 //transformの取得 19 20 Transform myTransform = this.transform; 21 22 // ワールド座標を基準に、座標を取得 23 24 Vector3 worldPos = myTransform.position; 25 26 Debug.Log(myTransform.transform.position); 27 28 } 29 30 void OnMouseDrag(){ 31 32 Vector3 objectPoint = Camera.main.WorldToScreenPoint(transform.position); //world座標からスクリーン座標に変換して、格納する。 33 34 Vector3 pointScreen = new Vector3(Input.mousePosition.x, Input.mousePosition.y, objectPoint.z);//現在位置を、格納。 35 36 Vector3 pointWorld = Camera.main.ScreenToWorldPoint(pointScreen); //現在位置をスクリーン座標からワールド座標に変換して、PointWorldに格納 37 pointWorld.z = transform.position.z; 38 39 transform.position = pointWorld; //位置を、PointWorldにする。 40 } 41 42 43 44 45 46 } 47
試したこと
OnmouseDrag()を用いて、動かすことができるかを試みました。
補足情報(FW/ツールのバージョンなど)
ARFoundation var4.2.7
Unity 2021.3.13f1
あなたの回答
tips
プレビュー