public void OnEnable() { CylinderTargetAbstractBehaviour arg_22_0 = (CylinderTargetAbstractBehaviour)base.target; this.mSerializedObject = new SerializedCylinderTarget(base.serializedObject); CylinderTargetEditor.EditorConfigureTarget(arg_22_0, this.mSerializedObject); }
public static void EditorConfigureTarget(CylinderTargetAbstractBehaviour ctb, SerializedCylinderTarget serializedObject) { if (ctb == null) { Debug.LogError("CylinderTargetAbstractBehaviour parameter is null !"); return; } if (VuforiaUtilities.GetPrefabType(ctb) == PrefabType.Prefab) { return; } if (!SceneManager.Instance.SceneInitialized) { SceneManager.Instance.InitScene(); } using (serializedObject.Edit()) { if (!serializedObject.InitializedInEditor && !EditorApplication.isPlaying) { ConfigData.CylinderTargetData cylinderTargetData; ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetCylinderTarget("--- EMPTY ---", out cylinderTargetData); serializedObject.DataSetPath = "--- EMPTY ---"; serializedObject.TrackableName = "--- EMPTY ---"; CylinderTargetEditor.UpdateAspectRatio(serializedObject, cylinderTargetData); CylinderTargetEditor.UpdateScale(serializedObject, cylinderTargetData.sideLength); serializedObject.InitializedInEditor = true; } else if (!EditorApplication.isPlaying) { CylinderTargetEditor.CheckMesh(serializedObject); } } }
private static void CheckMesh(SerializedCylinderTarget serializedObject) { foreach (CylinderTargetAbstractBehaviour expr_15 in serializedObject.GetBehaviours()) { MeshFilter component = expr_15.gameObject.GetComponent <MeshFilter>(); MeshRenderer component2 = expr_15.gameObject.GetComponent <MeshRenderer>(); if (component == null || component.sharedMesh == null || component2 == null || component2.sharedMaterials.Length == 0 || component2.sharedMaterials[0] == null) { ConfigData.CylinderTargetData ctConfig; ConfigDataManager.Instance.GetConfigData(serializedObject.GetDataSetName()).GetCylinderTarget(serializedObject.TrackableName, out ctConfig); CylinderTargetEditor.UpdateAspectRatio(serializedObject, ctConfig); } } }
internal static void UpdateAspectRatio(SerializedCylinderTarget serializedObject, ConfigData.CylinderTargetData ctConfig) { float num = ctConfig.topDiameter / ctConfig.sideLength; float num2 = ctConfig.bottomDiameter / ctConfig.sideLength; serializedObject.TopDiameterRatio = num; serializedObject.BottomDiameterRatio = num2; UnityEngine.Object[] targetObjects = serializedObject.SerializedObject.targetObjects; for (int i = 0; i < targetObjects.Length; i++) { CylinderTargetEditor.UpdateGeometry(((CylinderTargetAbstractBehaviour)targetObjects[i]).gameObject, 1f, num, num2, ctConfig.hasTopGeometry, ctConfig.hasBottomGeometry); } string arg_92_0 = serializedObject.GetDataSetName(); string trackableName = serializedObject.TrackableName; Material[] material = CylinderTargetEditor.UpdateMaterials(arg_92_0, trackableName, ctConfig.hasBottomGeometry, ctConfig.hasTopGeometry, true, serializedObject.GetMaterials()); serializedObject.SetMaterial(material); }
public override void ApplyDataSetAppearance() { if (VuforiaUtilities.GetPrefabType(this.mTarget) == PrefabType.Prefab) { return; } using (this.mSerializedObject.Edit()) { ConfigData.CylinderTargetData ctConfig; if (this.TrackableInDataSet(this.mSerializedObject.TrackableName, this.mSerializedObject.GetDataSetName())) { ConfigDataManager.Instance.GetConfigData(this.mSerializedObject.GetDataSetName()).GetCylinderTarget(this.mSerializedObject.TrackableName, out ctConfig); } else { ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetCylinderTarget("--- EMPTY ---", out ctConfig); this.mSerializedObject.DataSetPath = "--- EMPTY ---"; this.mSerializedObject.TrackableName = "--- EMPTY ---"; } CylinderTargetEditor.UpdateAspectRatio(this.mSerializedObject, ctConfig); } }
public override void OnInspectorGUI() { base.DrawDefaultInspector(); VuforiaUtilities.DisableGuiForPrefab(base.target); if (ConfigDataManager.Instance.NumConfigDataObjects > 1) { using (this.mSerializedObject.Edit()) { if (VuforiaUtilities.DrawDatasetTrackableInspector(this.mSerializedObject, false, new Func <ConfigData, string[]>(CylinderTargetEditor.GetTrackableNames), "Cylinder Target")) { ConfigData.CylinderTargetData cylinderTargetData; ConfigDataManager.Instance.GetConfigData(this.mSerializedObject.GetDataSetName()).GetCylinderTarget(this.mSerializedObject.TrackableName, out cylinderTargetData); CylinderTargetEditor.UpdateAspectRatio(this.mSerializedObject, cylinderTargetData); CylinderTargetEditor.UpdateScale(this.mSerializedObject, cylinderTargetData.sideLength); } EditorGUILayout.PropertyField(this.mSerializedObject.SideLengthProperty, new GUIContent("Side length"), new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.mSerializedObject.TopDiameterProperty, new GUIContent("Top diameter"), new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.mSerializedObject.BottomDiameterProperty, new GUIContent("Bottom diameter"), new GUILayoutOption[0]); VuforiaUtilities.DrawTrackableOptions(this.mSerializedObject, true, true, true); return; } } VuforiaUtilities.DrawMissingTargetsButton(); }