我正在尝试使用Vuforia进行匹配,以匹配与同一组相对应的图像。例如,如果相机显示存储的斑马图像和存储的狗图像,则应设置文字说正确,但如果相机捕捉到斑马图像和汽车的图像,则应设置文字说错误。我已经完成了相机的相机识别,但是我不知道要处理代码以避免默认行为。我想我必须修改C#脚本的这些部分
protected virtual void OnTrackingFound()
{
if (mTrackableBehaviour)
{
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName);
var rendererComponents = mTrackableBehaviour.GetComponentsInChildren<Renderer>(true);
var colliderComponents = mTrackableBehaviour.GetComponentsInChildren<Collider>(true);
var canvasComponents = mTrackableBehaviour.GetComponentsInChildren<Canvas>(true);
// Enable rendering:
foreach (var component in rendererComponents)
component.enabled = true;
// Enable colliders:
foreach (var component in colliderComponents)
component.enabled = true;
// Enable canvas':
foreach (var component in canvasComponents)
component.enabled = true;
}
}
protected virtual void OnTrackingLost()
{
if (mTrackableBehaviour)
{
var rendererComponents = mTrackableBehaviour.GetComponentsInChildren<Renderer>(true);
var colliderComponents = mTrackableBehaviour.GetComponentsInChildren<Collider>(true);
var canvasComponents = mTrackableBehaviour.GetComponentsInChildren<Canvas>(true);
// Disable rendering:
foreach (var component in rendererComponents)
component.enabled = false;
// Disable colliders:
foreach (var component in colliderComponents)
component.enabled = false;
// Disable canvas':
foreach (var component in canvasComponents)
component.enabled = false;
}
}
但是我不知道该怎么做,因此,如果有人可以帮助我提出想法或解决方案,那将不胜感激。
非常感谢。
一种更简单的方法是在要比较的每个标记上创建一个新脚本。例如:
public class MyMarker : MonoBehaviour
{
public string markerName; //Can be edited in the inspector
}
然后,您需要知道,当Vuforia发现或丢失标记时,将启用或禁用GameObject。
使用方法OnEnable()和OnDisable()发现(启用)或丢失(禁用)时,您可能会有特定的行为。
public class MyMarker : MonoBehaviour
{
public string markerName; //Can be edited in the inspector
void OnEnable()
{
//The object is active
}
void OnDisable()
{
//The object is inactive
}
}
此外,您还可以通过myGameObject.activeInHierarchy知道游戏对象是否处于活动状态。
现在,您可以使用哪些标记。