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