我正在为我的AR应用程序使用Vuforia和unity。它有超过2个模型/图像目标。为了放大和缩小,我使用了Lean Touch。 但问题是两者都会变得紧缩。 我只想要一个当前检测到的缩放..或者 我希望在DefaultTrackableEventHandler中的OnTrackingLost()函数上重置我的3D模型/模型的Scale组件,这样当它检测到它在原始比例上显示的另一个时(因为我将检测到的最大sim图像设置为1)。 谢谢!
编辑:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class rscale : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.V)) {
transform.localScale = new Vector3 (4f, 4f, 4f);
Debug.Log("scaling to 4");
}
}
}
但这个简单的脚本也不起作用了吗?
答案 0 :(得分:0)
您的方法进行缩放,添加:
if(this.gameObject.activeSelf == false){ return; }
// Scaling process
因此,如果您在所有对象上运行代码,则只会影响活动对象。考虑在丢失跟踪时停用对象。
答案 1 :(得分:0)
这里的问题是Vuforia没有停用附加到图像目标的3D对象,它只会停用渲染器组件和碰撞器,因此您无法设置过滤器来询问活动状态。游戏对象为@Everts sugest。
相反,您可以拥有一个脚本,您可以在其中对两个3D游戏对象进行公开引用,以及将两个对象的比例设置为一个的方法,每次丢失图像目标时都应该调用该函数和两个游戏对象将他的比例设定为1。
另一个解决方案是,Vuforia知道找到了哪个标记,因此当您检测到标记时,您可以激活设置该游戏对象,使其受到比例效应。