private static void SetVerticalAlignment(SerializedProperty alignment, VerticalTextAligment verticalAlignment) { foreach (var obj in alignment.serializedObject.targetObjects) { Text3DRenderer text = obj as Text3DRenderer; HorizontalTextAligment currentHorizontalAligment = GetHorizontalAlgiment(text.Alignment); Undo.RecordObject(text, "Vertical Alignment"); text.Alignment = GetAnchor(verticalAlignment, currentHorizontalAligment); EditorUtility.SetDirty(obj); } }
void OnEnable() { mTarget = this.target as Text3DRenderer; mTextLayoutProp = this.serializedObject.FindProperty("TextLayout"); mTextProp = this.mTextLayoutProp.FindPropertyRelative("Text"); mExtentsProp = this.mTextLayoutProp.FindPropertyRelative("Extents"); mFontDataProp = this.mTextLayoutProp.FindPropertyRelative("FontData"); mFontColorProp = this.mTextLayoutProp.FindPropertyRelative("FontColor"); mTextMatProp = this.serializedObject.FindProperty("Mat"); }
private static void DoVerticalAligmentControl(Rect position, SerializedProperty alignment) { TextAnchor ta = (TextAnchor)alignment.intValue; VerticalTextAligment verticalTextAligment = GetVerticalAlgiment(ta); bool topAlign = (verticalTextAligment == VerticalTextAligment.Top); bool middleAlign = (verticalTextAligment == VerticalTextAligment.Middle); bool bottomAlign = (verticalTextAligment == VerticalTextAligment.Bottom); if (alignment.hasMultipleDifferentValues) { foreach (var obj in alignment.serializedObject.targetObjects) { Text3DRenderer text = obj as Text3DRenderer; TextAnchor textAlignment = text.Alignment; verticalTextAligment = GetVerticalAlgiment(textAlignment); topAlign = topAlign || (verticalTextAligment == VerticalTextAligment.Top); middleAlign = middleAlign || (verticalTextAligment == VerticalTextAligment.Middle); bottomAlign = bottomAlign || (verticalTextAligment == VerticalTextAligment.Bottom); } } position.width = kAlignmentButtonWidth; // position.x += position.width; EditorGUI.BeginChangeCheck(); EditorToggle(position, topAlign, topAlign ? Styles.m_TopAlignTextActive : Styles.m_TopAlignText, Styles.alignmentButtonLeft); if (EditorGUI.EndChangeCheck()) { SetVerticalAlignment(alignment, VerticalTextAligment.Top); } position.x += position.width; EditorGUI.BeginChangeCheck(); EditorToggle(position, middleAlign, middleAlign ? Styles.m_MiddleAlignTextActive : Styles.m_MiddleAlignText, Styles.alignmentButtonMid); if (EditorGUI.EndChangeCheck()) { SetVerticalAlignment(alignment, VerticalTextAligment.Middle); } position.x += position.width; EditorGUI.BeginChangeCheck(); EditorToggle(position, bottomAlign, bottomAlign ? Styles.m_BottomAlignTextActive : Styles.m_BottomAlignText, Styles.alignmentButtonRight); if (EditorGUI.EndChangeCheck()) { SetVerticalAlignment(alignment, VerticalTextAligment.Bottom); } }
private static void DoHorizontalAligmentControl(Rect position, SerializedProperty alignment) { TextAnchor ta = (TextAnchor)alignment.intValue; HorizontalTextAligment horizontalAlignment = GetHorizontalAlgiment(ta); bool leftAlign = (horizontalAlignment == HorizontalTextAligment.Left); bool centerAlign = (horizontalAlignment == HorizontalTextAligment.Center); bool rightAlign = (horizontalAlignment == HorizontalTextAligment.Right); if (alignment.hasMultipleDifferentValues) { foreach (var obj in alignment.serializedObject.targetObjects) { Text3DRenderer text = obj as Text3DRenderer; horizontalAlignment = GetHorizontalAlgiment(text.Alignment); leftAlign = leftAlign || (horizontalAlignment == HorizontalTextAligment.Left); centerAlign = centerAlign || (horizontalAlignment == HorizontalTextAligment.Center); rightAlign = rightAlign || (horizontalAlignment == HorizontalTextAligment.Right); } } position.width = kAlignmentButtonWidth; EditorGUI.BeginChangeCheck(); EditorToggle(position, leftAlign, leftAlign ? Styles.m_LeftAlignTextActive : Styles.m_LeftAlignText, Styles.alignmentButtonLeft); if (EditorGUI.EndChangeCheck()) { SetHorizontalAlignment(alignment, HorizontalTextAligment.Left); } position.x += position.width; EditorGUI.BeginChangeCheck(); EditorToggle(position, centerAlign, centerAlign ? Styles.m_CenterAlignTextActive : Styles.m_CenterAlignText, Styles.alignmentButtonMid); if (EditorGUI.EndChangeCheck()) { SetHorizontalAlignment(alignment, HorizontalTextAligment.Center); } position.x += position.width; EditorGUI.BeginChangeCheck(); EditorToggle(position, rightAlign, rightAlign ? Styles.m_RightAlignTextActive : Styles.m_RightAlignText, Styles.alignmentButtonRight); if (EditorGUI.EndChangeCheck()) { SetHorizontalAlignment(alignment, HorizontalTextAligment.Right); } }
void OnDestroy() { mTarget = null; }