2016-06-01 8 views
0

階層:AR Vuforiaキャンバスが常に表示され、スタックトラックイメージターゲットが失われ

ARCamera 

Image target 

-Canvas 

最初に見つかった(これは良い)

トラックイメージのターゲットが表示されない、キャンバスは

を表示するキャンバスを開始するが、トラック画像のターゲットが失われた場合、キャンバスは常に固まっているように見えます。

私は、変更スクリプトだったし、別のチュートリアルので

を参照してください、私はdefaultTrackableEventHandler.csにcanvas.cs

からスクリプトをコピーしています。このスクリプトcanvas.cs基本DefaultTrackableEventHandler.csからです

です。キャンバス名は「情報」(必要な場合)です。

/*============================================================================== 
Copyright (c) 2010-2014 Qualcomm Connected Experiences, Inc. 
All Rights Reserved. 
Confidential and Proprietary - Qualcomm Connected Experiences, Inc. 
==============================================================================*/ 

using UnityEngine; 

namespace Vuforia 
{ 
/// <summary> 
/// A custom handler that implements the ITrackableEventHandler interface. 
/// </summary> 
public class canvas : MonoBehaviour, 
ITrackableEventHandler 
{ 
#region PRIVATE_MEMBER_VARIABLES 

private TrackableBehaviour mTrackableBehaviour; 

#endregion // PRIVATE_MEMBER_VARIABLES 



#region UNTIY_MONOBEHAVIOUR_METHODS 

void Start() 
{ 
    mTrackableBehaviour = GetComponent<TrackableBehaviour>(); 
    if (mTrackableBehaviour) 
    { 
    mTrackableBehaviour.RegisterTrackableEventHandler(this); 
    } 
} 

#endregion // UNTIY_MONOBEHAVIOUR_METHODS 



#region PUBLIC_METHODS 

/// <summary> 
/// Implementation of the ITrackableEventHandler function called when the 
/// tracking state changes. 
/// </summary> 
public void OnTrackableStateChanged(
    TrackableBehaviour.Status previousStatus, 
    TrackableBehaviour.Status newStatus) 
{ 
    if (newStatus == TrackableBehaviour.Status.DETECTED || 
     newStatus == TrackableBehaviour.Status.TRACKED || 
     newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) 
    { 
    OnTrackingFound(); 
    } 
    else 
    { 
    OnTrackingLost(); 
    } 
} 

#endregion // PUBLIC_METHODS 



#region PRIVATE_METHODS 


private void OnTrackingFound() 
{ 

    Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true); 

    // Enable canvas objects 
    foreach (Canvas component in canvasComponents) 
    { 
    component.enabled = true; 
    } 

} 


private void OnTrackingLost() 
{ 

    Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true); 

    // Disable canvas objects 
    foreach (Canvas component in canvasComponents) 
    { 
    component.enabled = false; 
    } 

} 

#endregion // PRIVATE_METHODS 
} 
} 

答えて

2

Assests - > Vuforia - > ScriptsフォルダのDefaultTrackableEventHandler.csにアクセスしてください。 OnTrackingFound()、OnTrackingLost()の2つのメソッドがあります。

OnTrackingFound()に、以下のコードを追加します。 OnTrackingLostの下

Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true); 

      //Enable canvas: 
      foreach(Canvas component in canvasComponents) 
      { 
       component.enabled=true; 
      } 

()、

Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true); 

// Disable canvas: 
      foreach (Canvas component in canvasComponents) 
      { 
       component.enabled = false; 
      } 

NOTE以下の行を追加します。あなたのキャンバスは、プロジェクト階層にImageTargetフォルダ内でなければならないことを確認します!

これだけです!あなたは設定されています!それで確認してください!

+0

これは受け入れられる回答でなければなりません!うまくいく! – KarthikKPN

関連する問題