2017-12-26 17 views
0

ARKitを使う私は、画面をタップすることで、オブジェクトを表面に置くことができます。 オブジェクトを「空中に」置くことは可能ですか?ARKit - オブジェクトをサーフェスに貼り付けることなくオブジェクトを配置する方法は?

たとえば、私の前にポータルを開きたいとします。だから私は画面上でタップすると、私はこの場所に表示するポータルをしたいが、私はそれが任意の表面に接続されて欲しくない。

おそらく私の指タップと私のデバイスの軸の座標を使用する必要がありますが、私はz軸(私とポータルの間の距離)のために、例えば1メートルのようなあらかじめ定義された値を使いたいと思います。

どのようにC#(UnityのARKit用)で作成できますか?

答えて

0

ScreenToWorldPoint()あなたが望むことをします。この簡単な例では、カメラの正面に立方体1メートルを配置します。代わりにGameObject.CreatePrimitive()の部分を置き換えて、代わりに "ポータル"プレハブをインスタンス化してください:

public class PlaceObject : MonoBehaviour { 

    float objDist = 1.0f; 

    void Update() { 
    if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Began) { 
     Vector3 touchPos = Input.GetTouch (0).position; 
     touchPos.z = objDist; 
     Vector3 objPos = Camera.main.ScreenToWorldPoint (touchPos); 

     GameObject myObj = GameObject.CreatePrimitive(PrimitiveType.Cube); 
     myObj.transform.position = objPos; 
     myObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); 
    } 
    } 
} 
関連する問題