private static void CheckMesh(SerializedVuMark serializedObject) { using (List <VuMarkAbstractBehaviour> .Enumerator enumerator = serializedObject.GetBehaviours().GetEnumerator()) { while (enumerator.MoveNext()) { GameObject gameObject = enumerator.Current.gameObject; MeshFilter component = gameObject.GetComponent <MeshFilter>(); if (component == null || component.sharedMesh == null) { VuMarkEditor.UpdateMesh(gameObject, serializedObject.BoundingBox, serializedObject.Origin); } } } if (!serializedObject.PreviewImageProperty.hasMultipleDifferentValues) { VuMarkEditor.UpdateMaterial(serializedObject); return; } UnityEngine.Object[] targetObjects = serializedObject.SerializedObject.targetObjects; for (int i = 0; i < targetObjects.Length; i++) { VuMarkEditor.UpdateMaterial(new SerializedVuMark(new SerializedObject(targetObjects[i]))); } }
internal static void UpdateAspectRatio(SerializedVuMark serializedObject, Vector2 size) { serializedObject.AspectRatio = size[1] / size[0]; using (List <VuMarkAbstractBehaviour> .Enumerator enumerator = serializedObject.GetBehaviours().GetEnumerator()) { while (enumerator.MoveNext()) { VuMarkEditor.UpdateMesh(enumerator.Current.gameObject, serializedObject.BoundingBox, serializedObject.Origin); } } }
internal static void UpdateScale(SerializedVuMark serializedObject, Vector2 size) { foreach (VuMarkAbstractBehaviour current in serializedObject.GetBehaviours()) { float num = current.GetSize()[0] / size[0]; if (serializedObject.AspectRatio <= 1f) { current.transform.localScale = new Vector3(size[0], size[0], size[0]); } else { current.transform.localScale = new Vector3(size[1], size[1], size[1]); } if (serializedObject.PreserveChildSize) { foreach (Transform transform in current.transform) { transform.localPosition = new Vector3(transform.localPosition.x * num, transform.localPosition.y * num, transform.localPosition.z * num); transform.localScale = new Vector3(transform.localScale.x * num, transform.localScale.y * num, transform.localScale.z * num); } } } }