AR Design
UBC EML collab with UBC SALA - visualizing IoT data in AR
OpenSourceInitializer.cs
Go to the documentation of this file.
1 /*===============================================================================
2 Copyright (c) 2017 PTC Inc. All Rights Reserved.
3 
4 Confidential and Proprietary - Protected under copyright and other laws.
5 Vuforia is a trademark of PTC Inc., registered in the United States and other
6 countries.
7 ===============================================================================*/
8 
9 using System.Linq;
10 using UnityEditor;
11 using UnityEngine;
12 using Vuforia;
13 using Vuforia.EditorClasses;
14 
19 [InitializeOnLoad]
20 public static class OpenSourceInitializer
21 {
22  static OpenSourceInitializer()
23  {
24  GameObjectFactory.SetDefaultBehaviourTypeConfiguration(new DefaultBehaviourAttacher());
25  ReplacePlaceHolders();
26  }
27 
28  static void ReplacePlaceHolders()
29  {
30  var trackablePlaceholders = Object.FindObjectsOfType<DefaultTrackableBehaviourPlaceholder>().ToList();
31  var initErrorsPlaceholders = Object.FindObjectsOfType<DefaultInitializationErrorHandlerPlaceHolder>().ToList();
32 
33  trackablePlaceholders.ForEach(ReplaceTrackablePlaceHolder);
34  initErrorsPlaceholders.ForEach(ReplaceInitErrorPlaceHolder);
35  }
36 
37  static void ReplaceTrackablePlaceHolder(DefaultTrackableBehaviourPlaceholder placeHolder)
38  {
39  var go = placeHolder.gameObject;
40  go.AddComponent<DefaultTrackableEventHandler>();
41 
42  Object.DestroyImmediate(placeHolder);
43  }
44 
45  static void ReplaceInitErrorPlaceHolder(DefaultInitializationErrorHandlerPlaceHolder placeHolder)
46  {
47  var go = placeHolder.gameObject;
48  go.AddComponent<DefaultInitializationErrorHandler>();
49 
50  Object.DestroyImmediate(placeHolder);
51  }
52 
53  class DefaultBehaviourAttacher : IDefaultBehaviourAttacher
54  {
55  public void AddDefaultTrackableBehaviour(GameObject go)
56  {
57  go.AddComponent<DefaultTrackableEventHandler>();
58  }
59 
60  public void AddDefaultInitializationErrorHandler(GameObject go)
61  {
62  go.AddComponent<DefaultInitializationErrorHandler>();
63  }
64  }
65 }
Creates connection between open source files and the Vuforia library. Do not modify.
A custom handler that implements the ITrackableEventHandler interface.
A custom handler that registers for Vuforia initialization errors