diff --git a/.github/README.md b/.github/README.md index 1cd8b56..cc1ab95 100644 --- a/.github/README.md +++ b/.github/README.md @@ -292,6 +292,7 @@ Used to cache all the binding structure information of the objects marked by **B |-|-|-|-| |Text Binder|Text|text|string| |Text FontSize Binder|Text|fontSize|int| +|Text Format Value Binder|Text|text|float| |InputField Binder|InputField|text|string| |Slider Binder|Slider|value|float| |Scrollbar Binder|Scrollbar|value|float| @@ -377,4 +378,5 @@ DataConverter.Register((sourceType, targetType), new CustomDataConverter()); *** ## 8. Extension -- TextMeshPro -* TMP Text Binder \ No newline at end of file +* TMP Text Binder +* TMP Text Format Value Binder \ No newline at end of file diff --git a/.github/README_CN.md b/.github/README_CN.md index f2db78a..c5b72e7 100644 --- a/.github/README_CN.md +++ b/.github/README_CN.md @@ -293,6 +293,7 @@ DataConvert.Register(Type sourceType, Type targetType, DataConverter dataConvert |-|-|-|-| |Text Binder|Text|text|string| |Text FontSize Binder|Text|fontSize|int| +|Text Format Value Binder|Text|text|float| |InputField Binder|InputField|text|string| |Slider Binder|Slider|value|float| |Scrollbar Binder|Scrollbar|value|float| @@ -378,4 +379,5 @@ DataConverter.Register((sourceType, targetType), new CustomDataConverter()); *** ## 8. 扩展 -- TextMeshPro -* TMP Text Binder \ No newline at end of file +* TMP Text Binder +* TMP Text Format Value Binder \ No newline at end of file diff --git a/Editor/Script/ComponentBinderEditor.cs b/Editor/Script/ComponentBinderEditor.cs index 582264b..181864e 100644 --- a/Editor/Script/ComponentBinderEditor.cs +++ b/Editor/Script/ComponentBinderEditor.cs @@ -19,11 +19,11 @@ public abstract class ComponentBinderEditor : B public virtual void OnEnable() { - ContextKeyProperty = serializedObject.FindProperty("Context"); - DataKeyProperty = serializedObject.FindProperty("Key"); - DirectionProperty = serializedObject.FindProperty("Direction"); - UpdateTypeProperty = serializedObject.FindProperty("UpdateType"); - TargetProperty = serializedObject.FindProperty("Target"); + ContextKeyProperty = serializedObject.FindProperty(nameof(ComponentBinder.Context)); + DataKeyProperty = serializedObject.FindProperty(nameof(ComponentBinder.Key)); + DirectionProperty = serializedObject.FindProperty(nameof(ComponentBinder.Direction)); + UpdateTypeProperty = serializedObject.FindProperty(nameof(ComponentBinder.UpdateType)); + TargetProperty = serializedObject.FindProperty(nameof(ComponentBinder.Target)); } public override void OnInspectorGUI() diff --git a/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs b/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs new file mode 100644 index 0000000..9529539 --- /dev/null +++ b/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs @@ -0,0 +1,75 @@ +using TMPro; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Aya.DataBinding +{ + [AddComponentMenu("Data Binding/TMP Text Format Value Binder")] + public class TMPTextFormatValueBinder : ComponentBinder + { + public override bool NeedUpdate => true; + public string Text; + + public override RuntimeTMPTextFormatValueBinder CreateDataBinder() + { + var dataBinder = new RuntimeTMPTextFormatValueBinder + { + Target = Target, + Context = Context, + Direction = Direction, + Key = Key, + Text = Text + }; + + return dataBinder; + } + + public override void Reset() + { + Text = "{0:F2}"; + } + } + + public class RuntimeTMPTextFormatValueBinder : DataBinder + { + public override bool NeedUpdate => true; + public string Text; + + public override float Value + { + get => _value; + set + { + _value = value; + var str = string.Format(Text, _value); + Target.text = str; + } + } + + private float _value; + } + +#if UNITY_EDITOR + + [CustomEditor(typeof(TMPTextFormatValueBinder)), CanEditMultipleObjects] + public class TMPTextFormatValueBinderEditor : ComponentBinderEditor + { + public TMPTextFormatValueBinder Binder => target as TMPTextFormatValueBinder; + protected SerializedProperty TextProperty; + + public override void OnEnable() + { + base.OnEnable(); + TextProperty = serializedObject.FindProperty(nameof(Binder.Text)); + } + + public override void DrawBody() + { + EditorGUILayout.PropertyField(TextProperty); + } + } + +#endif +} \ No newline at end of file diff --git a/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs.meta b/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs.meta new file mode 100644 index 0000000..7005c28 --- /dev/null +++ b/Extension/TextMeshPro/Script/TMPTextFormatValueBinder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5daad71b342b4a4290a041dcfd135e0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b07aafae171734f4b837582f4db8e75d, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Script/Component/UI/TextFormatValueBinder.cs b/Runtime/Script/Component/UI/TextFormatValueBinder.cs new file mode 100644 index 0000000..47ddd7b --- /dev/null +++ b/Runtime/Script/Component/UI/TextFormatValueBinder.cs @@ -0,0 +1,75 @@ +using UnityEngine; +using UnityEngine.UI; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Aya.DataBinding +{ + [AddComponentMenu("Data Binding/Text Format Value Binder")] + public class TextFormatValueBinder : ComponentBinder + { + public override bool NeedUpdate => true; + public string Text; + + public override RuntimeTextFormatValueBinder CreateDataBinder() + { + var dataBinder = new RuntimeTextFormatValueBinder + { + Target = Target, + Context = Context, + Direction = Direction, + Key = Key, + Text = Text + }; + + return dataBinder; + } + + public override void Reset() + { + Text = "{0:F2}"; + } + } + + public class RuntimeTextFormatValueBinder : DataBinder + { + public override bool NeedUpdate => true; + public string Text; + + public override float Value + { + get => _value; + set + { + _value = value; + var str = string.Format(Text, _value); + Target.text = str; + } + } + + private float _value; + } + +#if UNITY_EDITOR + + [CustomEditor(typeof(TextFormatValueBinder)), CanEditMultipleObjects] + public class TextFormatValueBinderEditor : ComponentBinderEditor + { + public TextFormatValueBinder Binder => target as TextFormatValueBinder; + protected SerializedProperty TextProperty; + + public override void OnEnable() + { + base.OnEnable(); + TextProperty = serializedObject.FindProperty(nameof(Binder.Text)); + } + + public override void DrawBody() + { + EditorGUILayout.PropertyField(TextProperty); + } + } + +#endif +} \ No newline at end of file diff --git a/Runtime/Script/Component/UI/TextFormatValueBinder.cs.meta b/Runtime/Script/Component/UI/TextFormatValueBinder.cs.meta new file mode 100644 index 0000000..c98cdaf --- /dev/null +++ b/Runtime/Script/Component/UI/TextFormatValueBinder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad4f92a4a23e70642b3ee87cf3d4d257 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b07aafae171734f4b837582f4db8e75d, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Script/Converter/CommonConverter.cs b/Runtime/Script/Converter/CommonConverter.cs index cfe5793..e074614 100644 --- a/Runtime/Script/Converter/CommonConverter.cs +++ b/Runtime/Script/Converter/CommonConverter.cs @@ -13,15 +13,23 @@ public override object To(object data, Type convertType) { return data; } - else if (dataType == typeof(string)) + else if (convertType == typeof(string)) { var convertData = data.ToString(); return convertData; } else { - var convertData = Convert.ChangeType(data, convertType, CultureInfo.InvariantCulture); - return convertData; + try + { + var convertData = Convert.ChangeType(data, convertType, CultureInfo.InvariantCulture); + return convertData; + } + catch + { + var result = convertType.IsValueType ? Activator.CreateInstance(convertType) : null; + return result; + } } } } diff --git a/Samples/Sample_01_Common/Scene/UBind_Sample_01_Common.unity b/Samples/Sample_01_Common/Scene/UBind_Sample_01_Common.unity index cb615bf..79836f7 100644 --- a/Samples/Sample_01_Common/Scene/UBind_Sample_01_Common.unity +++ b/Samples/Sample_01_Common/Scene/UBind_Sample_01_Common.unity @@ -224,6 +224,84 @@ MonoBehaviour: Direction: 0 UpdateType: 0 Target: {fileID: 18104508} +--- !u!1 &79331857 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 79331858} + - component: {fileID: 79331860} + - component: {fileID: 79331859} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &79331858 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79331857} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 614389346} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &79331859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79331857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &79331860 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79331857} + m_CullTransparentMesh: 0 --- !u!1 &85641824 GameObject: m_ObjectHideFlags: 0 @@ -296,7 +374,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 921, y: -43} + m_AnchoredPosition: {x: 122, y: -182} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &87629554 @@ -470,6 +548,84 @@ MonoBehaviour: UpdateType: 0 Target: {fileID: 100068333} Property: IntValue +--- !u!1 &118688137 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 118688138} + - component: {fileID: 118688140} + - component: {fileID: 118688139} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &118688138 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118688137} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 614389346} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &118688139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118688137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!222 &118688140 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118688137} + m_CullTransparentMesh: 0 --- !u!1 &202976248 GameObject: m_ObjectHideFlags: 0 @@ -505,7 +661,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 921, y: -76} + m_AnchoredPosition: {x: 122, y: -215} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &202976250 @@ -565,7 +721,7 @@ MonoBehaviour: Key: BothSrcDst Direction: 2 UpdateType: 0 - Target: {fileID: 202976250} + Target: {fileID: 87629554} --- !u!1 &204227485 GameObject: m_ObjectHideFlags: 0 @@ -957,6 +1113,164 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &614389345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 614389346} + - component: {fileID: 614389350} + - component: {fileID: 614389349} + - component: {fileID: 614389348} + - component: {fileID: 614389347} + m_Layer: 5 + m_Name: Input_Format_Src + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &614389346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614389345} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 118688138} + - {fileID: 79331858} + m_Father: {fileID: 1599865660} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -193.6, y: 191} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &614389347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614389345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 614389348} + m_TextComponent: {fileID: 79331859} + m_Placeholder: {fileID: 118688139} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &614389348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614389345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &614389349 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614389345} + m_CullTransparentMesh: 0 +--- !u!114 &614389350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614389345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d60b1773969a634ba06985ea7a74057, type: 3} + m_Name: + m_EditorClassIdentifier: + Context: Default + Key: BindFormatValueSrc + Direction: 0 + UpdateType: 0 + Target: {fileID: 614389347} --- !u!1 &715289685 GameObject: m_ObjectHideFlags: 0 @@ -1751,56 +2065,190 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 911983364} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 911983364} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1275354879} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &911983366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 911983364} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &911983367 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 911983364} + m_CullTransparentMesh: 0 +--- !u!1 &926360977 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 926360979} + - component: {fileID: 926360978} + m_Layer: 0 + m_Name: UndoProRecords + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &926360978 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926360977} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: efa53029e0a62304caf81173265515b9, type: 3} + m_Name: + m_EditorClassIdentifier: + undoProRecords: [] + undoState: + redoRecords: [] + undoRecords: + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Paste Text_SrcDst_1 + - Paste Text_SrcDst_1 + - Set Sibling Index + - Set Sibling Index + - Text_SrcDst_1 (1) Parenting + - Text_SrcDst_1 (1) Parenting + - Text _SrcDst_2 (1) Parenting + - Text _SrcDst_2 (1) Parenting + - Selection Change + - Rename Text_SrcDst_1 (1) + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Delete Game Objects + - Delete Game Objects + - Delete Game Objects + - Selection Change + - Move + - Move + - Inspector + - Selection Change + - Create InputField + - Add Image + - Add InputField + - Create Placeholder + - Add Text + - + - + - Create Text + - Add Text + - + - + - + - + - + - Create InputField + - Selection Change + - InputField Parenting + - Move + - Move + - Rename InputField + - Rename Input_FormatSrc + - Inspector + - Selection Change + - Selection Change + - Add InputFieldBinder + - Move Component(s) + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Inspector + - Selection Change + - Selection Change + - Remove MonoBehaviour + - Add TextFormatValueBinder + - Selection Change + - Selection Change + - Move Component(s) + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Inspector + - Selection Change + - Inspector + - Selection Change + - Inspector + - Reset Text_Format_Dst Aya.DataBinding.TextFormatValueBinder + - Inspector + - Inspector + - Inspector + - Inspector + - Inspector + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Selection Change + - Selection Change +--- !u!4 &926360979 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926360977} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 1275354879} - m_RootOrder: 0 + m_Father: {fileID: 0} + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &911983366 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 911983364} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &911983367 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 911983364} - m_CullTransparentMesh: 0 --- !u!1 &938944959 GameObject: m_ObjectHideFlags: 0 @@ -2049,74 +2497,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1063796227} m_CullTransparentMesh: 0 ---- !u!1 &1132936969 -GameObject: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1132936971} - - component: {fileID: 1132936970} - m_Layer: 0 - m_Name: UndoProRecords - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1132936970 -MonoBehaviour: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1132936969} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: efa53029e0a62304caf81173265515b9, type: 3} - m_Name: - m_EditorClassIdentifier: - undoProRecords: [] - undoState: - redoRecords: [] - undoRecords: - - Selection Change - - Selection Change - - Selection Change - - Selection Change - - Selection Change - - Inspector - - Selection Change - - Selection Change - - Selection Change - - Selection Change - - Selection Change - - Selection Change - - Inspector - - Inspector - - Selection Change - - Delete Game Objects - - Delete Game Objects - - Selection Change - - Selection Change - - Selection Change - - Selection Change ---- !u!4 &1132936971 -Transform: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1132936969} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1211778185 GameObject: m_ObjectHideFlags: 0 @@ -2366,6 +2746,7 @@ RectTransform: - {fileID: 1508905514} - {fileID: 579003092} - {fileID: 85641825} + - {fileID: 1599865660} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2374,6 +2755,36 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1239341353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1239341354} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1239341354 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239341353} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 605.5206, y: 384.56158, z: -28.484934} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1275354878 GameObject: m_ObjectHideFlags: 0 @@ -2633,7 +3044,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1024, y: -40} + m_AnchoredPosition: {x: 227, y: -174} m_SizeDelta: {x: 89.57849, y: 27.166382} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1350305574 @@ -2868,6 +3279,103 @@ MonoBehaviour: Direction: 0 UpdateType: 0 Target: {fileID: 1495158507} +--- !u!1 &1500002555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1500002556} + - component: {fileID: 1500002559} + - component: {fileID: 1500002558} + - component: {fileID: 1500002557} + m_Layer: 5 + m_Name: Text_Format_Dst + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1500002556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500002555} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1599865660} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 389.4, y: -214.4} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1500002557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500002555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Text_Format_Dst +--- !u!222 &1500002558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500002555} + m_CullTransparentMesh: 0 +--- !u!114 &1500002559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500002555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad4f92a4a23e70642b3ee87cf3d4d257, type: 3} + m_Name: + m_EditorClassIdentifier: + Context: Default + Key: BindFormatValueSrc + Direction: 1 + UpdateType: 0 + Target: {fileID: 1500002557} + Text: 'Time : {0:F2} s' --- !u!1 &1508905513 GameObject: m_ObjectHideFlags: 0 @@ -2989,6 +3497,43 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1599865659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1599865660} + m_Layer: 5 + m_Name: TextFormart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1599865660 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1599865659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 614389346} + - {fileID: 1500002556} + m_Father: {fileID: 1221117634} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1671893277 GameObject: m_ObjectHideFlags: 0 @@ -3283,7 +3828,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1024, y: -81} + m_AnchoredPosition: {x: 227, y: -215} m_SizeDelta: {x: 89.57849, y: 27.166382} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1824023481 @@ -3339,7 +3884,7 @@ MonoBehaviour: Key: Color Direction: 1 UpdateType: 0 - Target: {fileID: 1824023481} + Target: {fileID: 1350305574} --- !u!1 &1848779269 GameObject: m_ObjectHideFlags: 0 diff --git a/package.json b/package.json index 0c6040c..911044c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "com.ls9512.ubind", "displayName": "UBind", "description": "UBind is a value binding component for Unity, which is used to quickly realize the association binding between UI and logical data.", - "version": "0.9.0", + "version": "0.9.1", "unity": "2019.4.3f1", "license": "MIT", "repository": {