2

我一直在研究增强现实 Kudan 的统一 SDK。我看过教程中的对象似乎是静态的,但是当我尝试对象继续旋转时,不符合我的要求,我无法停止旋转。如果您帮助停止旋转,那么我将继续感谢您!

4

2 回答 2

0

你的意思是物体旋转相对于你自己的手机旋转?我遇到了这个问题,想在 Kudan 中放置一个垂直于相机的 2D 平面,并进行无标记跟踪。根据我自己的旋转,它会使平面保持相同的世界方向,因此在不同的旋转中它不会是垂直的。当使用 MarkerlessTransformDriver 激活 Augment 对象时,我通过硬编码方向转换来解决它。

于 2016-07-30T06:36:42.677 回答
0

我认为您应该为此使用无标记增强现实,并且它不需要任何 sdk 只需一行代码

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class WebCamScript : MonoBehaviour {

    public GameObject WebcamPlane;
    public Button FireButton;
    // Use this for initialization
    void Start () {
        if(Application.isMobilePlatform)
        {
            GameObject cameraParent = new GameObject("camParent");
            cameraParent.transform.position = this.transform.position;
            this.transform.parent = cameraParent.transform;
            cameraParent.transform.Rotate(Vector3.right, 90);
        }

        Input.gyro.enabled = true;

        WebCamTexture webCameraTexture = new WebCamTexture();
        WebcamPlane.GetComponent<MeshRenderer>().material.mainTexture = webCameraTexture;
        webCameraTexture.Play();

        FireButton.onClick.AddListener(OnButtonDown);

    }

    void OnButtonDown()
    {
        GameObject bullet = Instantiate(Resources.Load("bullet", typeof(GameObject))) as GameObject;
        Rigidbody rb = bullet.GetComponent<Rigidbody>();
        bullet.transform.rotation = Camera.main.transform.rotation;
        bullet.transform.position = Camera.main.transform.position;
        rb.AddForce(Camera.main.transform.forward * 500f);
        Destroy(bullet, 3);

        GetComponent<AudioSource>().Play();
    }

    // Update is called once per frame
    void Update ()
    {
        Quaternion cameraRotation = new Quaternion(Input.gyro.attitude.x, Input.gyro.attitude.y, -Input.gyro.attitude.z, -Input.gyro.attitude.w);
        this.transform.localRotation = cameraRotation;

    }
}
于 2017-08-23T14:53:42.823 回答