internal static void UpdateAspectRatio(NRSerializedImageTarget it) { Vector2 size = new Vector2(it.Width, it.Height); it.AspectRatio = size.y / size.x; using (List <NRTrackableImageBehaviour> .Enumerator enumerator = it.GetBehaviours().GetEnumerator()) { while (enumerator.MoveNext()) { UpdateMesh(enumerator.Current.gameObject, it.AspectRatio); } } }
internal static void UpdateScale(NRSerializedImageTarget it) { Vector2 size = new Vector2(it.Width, it.Height); foreach (NRTrackableImageBehaviour item in it.GetBehaviours()) { if (it.AspectRatio <= 1f) // AspectRatio => y/x { item.transform.localScale = new Vector3(size.x, size.x, size.x) * 0.001f; } else { item.transform.localScale = new Vector3(size.y, size.y, size.y) * 0.001f; } } }
private void CheckMesh(NRSerializedImageTarget serializedImageTarget) { using (List <NRTrackableImageBehaviour> .Enumerator enumerator = serializedImageTarget.GetBehaviours().GetEnumerator()) { while (enumerator.MoveNext()) { GameObject go = enumerator.Current.gameObject; MeshFilter mf = go.GetComponent <MeshFilter>(); if ((mf == null || mf.sharedMesh == null) && serializedImageTarget.AspectRatioProperty.hasMultipleDifferentValues) { UpdateMesh(go, serializedImageTarget.AspectRatio); } } } if (!serializedImageTarget.TrackableNameProperty.hasMultipleDifferentValues) { UpdateMaterial(serializedImageTarget); } }