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": {