ARKit - 如何在不将物体附着到地面的情况下放置物体?

时间:2017-12-26 23:38:29

标签: c# ios unity3d unity5 arkit

使用ARKit我可以通过点击屏幕将对象放在表面上。 是否可以在空中放置一个物体"代替?

例如,我想在我面前打开一个门户网站。因此,当我点击屏幕时,我希望门户网站出现在此位置,但我不希望它连接到任何表面。

可能我必须使用我的手指敲击坐标和我的设备的轴,但对于z轴(我和门户之间的距离),我想使用一些预定义的值,例如1米。

如何在C#中制作(对于Unity中的ARKit)?

1 个答案:

答案 0 :(得分: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);
    }
  }
}