没有扩展方法`GetTracker' - Vuforia + Unity

时间:2017-05-25 09:38:38

标签: unity3d vuforia image-recognition

我一直在关于构建识别应用程序的vuforia的各种教程,但是我遇到了一部分代码似乎无法修复的问题。

我的代码给出了这样的错误:

  

键入UnityEngine.GameObject' does not contain a definition for GetTracker',无法找到扩展方法GetTracker' of type UnityEngine.GameObject'。

GetTracker有什么原因不起作用吗?我是这个编码的新手,我不知道会出现什么问题。

以下是整个代码,以防我错过了什么。

public class SimpleCloudHandler : MonoBehaviour, ICloudRecoEventHandler {

private CloudRecoBehaviour mCloudRecoBehaviour;

private bool mIsScanning = false;

private string mTargetMetadata = "";

private ImageTracker mImageTracker;

public TrackerManager mTrackerManager;

public ImageTargetBehaviour ImageTargetTemplate;

// Use this for initialization

void Start ()

{

// register this event handler at the cloud reco behaviour

mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>();

if (mCloudRecoBehaviour)

{

 mCloudRecoBehaviour.RegisterEventHandler(this);

}

}

public void OnInitialized() {

Debug.Log ("Cloud Reco initialized");

}

public void OnInitError(TargetFinder.InitState initError) {

Debug.Log ("Cloud Reco init error " + initError.ToString());

}

public void OnUpdateError(TargetFinder.UpdateState updateError) {

Debug.Log ("Cloud Reco update error " + updateError.ToString());

}

public class ImageTracker

{

}

public class TrackerManager

{

public GameObject Instance;

}



public void OnStateChanged(bool scanning) {

mIsScanning = scanning;

if (scanning)

{

// clear all known trackables

mImageTracker = mTrackerManager.Instance.GetTracker<ImageTracker>();

 //ImageTracker.TargetFinder.ClearTrackables(false);

  }

 }

 // Here we handle a cloud target recognition event

 public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) {

   // do something with the target metadata

   mTargetMetadata = targetSearchResult.MetaData;

    // stop the target finder (i.e. stop scanning the cloud)

    mCloudRecoBehaviour.CloudRecoEnabled = false;

    if (ImageTargetTemplate) {

     // enable the new result with the same ImageTargetBehaviour:

      ObjectTracker tracker = mTrackerManager.Instance.GetTracker<ObjectTracker>();

     ImageTargetBehaviour imageTargetBehaviour =

    (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(

     targetSearchResult, ImageTargetTemplate.gameObject);

      }

     }

     void OnGUI() {

     // Display current 'scanning' status

      GUI.Box (new Rect (100, 100, 200, 50), mIsScanning ? "Scanning" : "Not scanning");

      // Display metadata of latest detected cloud-target

      GUI.Box (new Rect (100, 200, 200, 50), "Metadata: " + mTargetMetadata);

       // If not scanning, show button

       // so that user can restart cloud scanning

      if (!mIsScanning) {

       if (GUI.Button (new Rect (100, 300, 200, 50), "Restart Scanning")) {

       // Restart TargetFinder

       mCloudRecoBehaviour.CloudRecoEnabled = true;

       }

        }

        }

       }

0 个答案:

没有答案