Skip to content

Commit f799f35

Browse files
author
邹杭特
committed
修正部分demo
1 parent e5b5cc3 commit f799f35

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1118
-556
lines changed

Assets/BridgeUI/Controls/ThreeD/RenderImage.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public override Material material
1919
m_renderer = GetComponentInChildren<Renderer>();
2020
}
2121

22-
if (m_renderer != null)
22+
if (m_renderer != null )
2323
{
2424
if(Application.isPlaying)
2525
{

Assets/BridgeUI/Core/Behaiver/Group/Base/PanelGroupBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public Bridge InstencePanel(IUIPanel parentPanel, string panelName, int index, T
175175
public void CansaleInstencePanel(string panelName)
176176
{
177177
var match = waitCreateQueue.Find(x => x.uiInfo != null && x.uiInfo.panelName == panelName);
178-
if (match.uiInfo != null)
178+
if (match != null && match.uiInfo != null)
179179
{
180180
waitCreateQueue.Remove(match);
181181
uiCreateInfoPool.Release(match);

Assets/BridgeUI/Core/Behaiver/Panels/PanelBase.cs

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,43 +41,43 @@ public virtual Binding.PropertyBinder Binder
4141
}
4242
}
4343
[SerializeField, Attributes.DefultViewModel(true)]
44-
private ScriptableObject _viewModel;
45-
private IViewModel _defultViewModel;
46-
protected IViewModel defultViewModel
44+
private ScriptableObject defultViewModel;
45+
private IViewModel _viewModel;
46+
public IViewModel ViewModel
4747
{
4848
get
4949
{
50-
if (_defultViewModel == null)
50+
if(_viewModel == null)
5151
{
52-
_defultViewModel = ScriptableObject.CreateInstance<ViewModelObject>();
52+
if (defultViewModel != null)
53+
{
54+
_viewModel = defultViewModel as IViewModel;
55+
}
56+
if (_viewModel == null)
57+
{
58+
_viewModel = new ViewModel();
59+
}
5360
}
54-
return _defultViewModel;
55-
}
56-
}
57-
public IViewModel ViewModel
58-
{
59-
get
60-
{
61-
return _viewModel as IViewModel;
61+
return _viewModel;
6262
}
6363
set
6464
{
65-
_viewModel = (ScriptableObject)value;
65+
_viewModel = value;
6666
OnViewModelChanged(value);
6767
}
6868
}
6969

7070
#if UNITY_EDITOR
7171

72-
[ContextMenu("加载ViewModel")]
72+
[ContextMenu("显示ViewModel")]
7373
private void LoadDefultViewModel()
7474
{
75-
_viewModel = ScriptableObject.CreateInstance<ViewModelObject>();
75+
defultViewModel = ScriptableObject.CreateInstance<ViewModelObject>();
7676
}
7777
[ContextMenu("清除ViewModel")]
7878
private void ClearDefultViewModel()
7979
{
80-
_viewModel =null;
80+
defultViewModel = null;
8181
}
8282
#endif
8383

@@ -91,10 +91,7 @@ protected override void Awake()
9191
protected override void Start()
9292
{
9393
base.Start();
94-
95-
if (_viewModel != null && _viewModel is IViewModel){
96-
OnViewModelChanged(_viewModel as IViewModel);
97-
}
94+
Binder.Bind(ViewModel);
9895
}
9996

10097
protected override void OnDestroy()
@@ -123,9 +120,7 @@ protected override void HandleData(object data)
123120
}
124121
else if (data is IDictionary)
125122
{
126-
var currentViewModel = ViewModel == null ? defultViewModel : ViewModel;
127-
LoadPropDictionary(currentViewModel, data as IDictionary);
128-
ViewModel = currentViewModel;
123+
LoadPropDictionary(ViewModel, data as IDictionary);
129124
}
130125
}
131126

Assets/BridgeUI/Core/Binding/BindingAttribute.cs

Lines changed: 0 additions & 21 deletions
This file was deleted.

Assets/BridgeUI/Core/Binding/BindingAttribute.cs.meta

Lines changed: 0 additions & 12 deletions
This file was deleted.

Assets/BridgeUI/Core/Binding/PropertyBinder.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,32 @@ public virtual void RegistEvent<T, X, Y, Z, P>(UnityEvent<T, X, Y, Z> uEvent, st
431431
}
432432
#endregion
433433

434+
#region RegistValueEvent
435+
/// <summary>
436+
/// 注册状态改变事件
437+
/// </summary>
438+
/// <typeparam name="T"></typeparam>
439+
/// <param name="uEvent"></param>
440+
/// <param name="sourceName"></param>
441+
public virtual void RegistValueEvent<T>(UnityEvent<T> uEvent, string sourceName)
442+
{
443+
UnityAction<T> action = (x) =>
444+
{
445+
SetValue<T>(x, sourceName);
446+
};
447+
448+
binders += viewModel =>
449+
{
450+
uEvent.AddListener(action);
451+
};
452+
453+
unbinders += viewModel =>
454+
{
455+
uEvent.RemoveListener(action);
456+
};
457+
}
458+
#endregion
459+
434460
#region ValueRegist&Set
435461
/// <summary>
436462
/// 手动指定绑定事件

Assets/BridgeUI/Core/Binding/UIBindingHelper.cs renamed to Assets/BridgeUI/Core/Binding/UGUIBindingHelper.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using UnityEngine.UI;
55
namespace BridgeUI.Binding
66
{
7-
public static class UIBindingHelper
7+
public static class UGUIBindingHelper
88
{
99
/// <summary>
1010
/// 输入框
@@ -15,7 +15,7 @@ public static class UIBindingHelper
1515
public static void BindingInputField(this PropertyBinder Binder, InputField inputField, string sourceName)
1616
{
1717
Binder.RegistValueChange<string>(x => inputField.text = x, sourceName);
18-
Binder.RegistEvent(inputField.onValueChanged, sourceName);
18+
Binder.RegistValueEvent(inputField.onValueChanged, sourceName);
1919
}
2020
/// <summary>
2121
/// 文本框
@@ -36,7 +36,7 @@ public static void BindingText(this PropertyBinder Binder, Text textComponent, s
3636
public static void BindingSlider(this PropertyBinder Binder, Slider sliderComponent, string sourceName)
3737
{
3838
Binder.RegistValueChange<float>(x => sliderComponent.value = x, sourceName);
39-
Binder.RegistEvent(sliderComponent.onValueChanged, sourceName);
39+
Binder.RegistValueEvent(sliderComponent.onValueChanged, sourceName);
4040
}
4141
/// <summary>
4242
/// 下拉框
@@ -47,7 +47,7 @@ public static void BindingSlider(this PropertyBinder Binder, Slider sliderCompon
4747
public static void BindingDropdown(this PropertyBinder Binder, Dropdown dropdown, string sourceName)
4848
{
4949
Binder.RegistValueChange<int>(x => dropdown.value = x, sourceName);
50-
Binder.RegistEvent(dropdown.onValueChanged, sourceName);
50+
Binder.RegistValueEvent(dropdown.onValueChanged, sourceName);
5151
}
5252

5353
/// <summary>
@@ -69,7 +69,8 @@ public static void BindingButton(this PropertyBinder Binder, Button button, stri
6969
/// <param name="sourceName"></param>
7070
public static void BindingToggle(this PropertyBinder Binder, Toggle toggle, string sourceName)
7171
{
72-
Binder.RegistEvent(toggle.onValueChanged, sourceName);
72+
Binder.RegistValueChange<bool>(x=> toggle.isOn = x, sourceName);
73+
Binder.RegistValueEvent(toggle.onValueChanged, sourceName);
7374
}
7475

7576
/// <summary>
File renamed without changes.

Assets/BridgeUI/Core/Binding/ViewModelInfo.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

Assets/BridgeUI/Core/Binding/ViewModelInfo.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)