mirror of
https://github.com/soarqin/DSP_Mods_TO.git
synced 2026-02-04 22:22:22 +08:00
format code
This commit is contained in:
@@ -2,39 +2,39 @@
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class BasePanel : MonoBehaviour
|
||||
{
|
||||
public virtual void OnEnter()
|
||||
{
|
||||
}
|
||||
internal class BasePanel : MonoBehaviour
|
||||
{
|
||||
public virtual void OnEnter()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void OnPause()
|
||||
{
|
||||
UITool.GameObject.SetActive(false);
|
||||
}
|
||||
public virtual void OnPause()
|
||||
{
|
||||
UITool.GameObject.SetActive(false);
|
||||
}
|
||||
|
||||
public virtual void OnResume()
|
||||
{
|
||||
UITool.GameObject.SetActive(true);
|
||||
}
|
||||
public virtual void OnResume()
|
||||
{
|
||||
UITool.GameObject.SetActive(true);
|
||||
}
|
||||
|
||||
public virtual void OnExit()
|
||||
{
|
||||
Destroy(UITool.GameObject);
|
||||
}
|
||||
public virtual void OnExit()
|
||||
{
|
||||
Destroy(UITool.GameObject);
|
||||
}
|
||||
|
||||
public void Init(PanelManager panelManager)
|
||||
{
|
||||
PanelManager = panelManager;
|
||||
}
|
||||
public void Init(PanelManager panelManager)
|
||||
{
|
||||
PanelManager = panelManager;
|
||||
}
|
||||
|
||||
public PanelManager PanelManager { get; private set; }
|
||||
public PanelManager PanelManager { get; private set; }
|
||||
|
||||
public void Init(UITool uiTool)
|
||||
{
|
||||
UITool = uiTool;
|
||||
}
|
||||
public void Init(UITool uiTool)
|
||||
{
|
||||
UITool = uiTool;
|
||||
}
|
||||
|
||||
public UITool UITool { get; private set; }
|
||||
}
|
||||
public UITool UITool { get; private set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,339 +6,339 @@ using Debug = UnityEngine.Debug;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class BlueTuPatchUI : XianTuBasePanel
|
||||
{
|
||||
public BlueTuUIData Data { get; private set; }
|
||||
internal class BlueTuPatchUI : XianTuBasePanel
|
||||
{
|
||||
public BlueTuUIData Data { get; private set; }
|
||||
|
||||
public static BlueTuPatchUI Instance { get; private set; }
|
||||
public static BlueTuPatchUI Instance { get; private set; }
|
||||
|
||||
public override void OnEnter()
|
||||
{
|
||||
base.OnEnter();
|
||||
Data = BlueTuUIData.Instance;
|
||||
enableToggle = UITool.GetComponentInChild<Toggle>("XianTuEnableTg");
|
||||
enableToggle.isOn = Data.Enable;
|
||||
enableToggle.onValueChanged.AddListener(delegate(bool value)
|
||||
{
|
||||
Data.Enable = value;
|
||||
});
|
||||
_tipText = UITool.GetComponentInChild<Button>("Tx_Tip");
|
||||
_buildButton = UITool.GetComponentInChild<Button>("Btn_Build");
|
||||
_buildButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onBuildBtn = Data.OnBuildBtn;
|
||||
if (onBuildBtn != null)
|
||||
{
|
||||
onBuildBtn();
|
||||
}
|
||||
});
|
||||
_resetButton = UITool.GetComponentInChild<Button>("Btn_Reset");
|
||||
_resetButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onResetBtn = Data.OnResetBtn;
|
||||
if (onResetBtn != null)
|
||||
{
|
||||
onResetBtn();
|
||||
}
|
||||
ResetValue();
|
||||
});
|
||||
_copyButton = UITool.GetComponentInChild<Button>("Btn_Copy");
|
||||
_copyButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onCopyBtn = Data.OnCopyBtn;
|
||||
if (onCopyBtn != null)
|
||||
{
|
||||
onCopyBtn();
|
||||
}
|
||||
});
|
||||
LayerNumber = CreateUIValue(Data.LayerNumber, "LayerNumber");
|
||||
LayerHeight = CreateUIValue(Data.LayerHeight, "LayerHeight", 20f);
|
||||
var text = "ScaleGroup/Group/ScaleX";
|
||||
var text2 = "ScaleGroup/Group/ScaleY";
|
||||
ScaleX = CreateUIValue(Data.Scale.x, text);
|
||||
ScaleY = CreateUIValue(Data.Scale.y, text2);
|
||||
var text3 = "ScaleGroup/Group/ScaleZ";
|
||||
ScaleZ = CreateUIValue(Data.Scale.z, text3);
|
||||
var text4 = "BiasGroup/Group/BiasX";
|
||||
var text5 = "BiasGroup/Group/BiasY";
|
||||
var text6 = "BiasGroup/Group/BiasZ";
|
||||
_biasX = CreateUIValue(Data.Bias.x, text4, 20f);
|
||||
_biasY = CreateUIValue(Data.Bias.y, text5, 20f);
|
||||
BiasZ = CreateUIValue(Data.Bias.z, text6, 20f);
|
||||
Rotate = CreateUIValue(Data.Rotate, "Rotate", 180f);
|
||||
_pivotX = CreateUIValue(Data.Pivot.x, "PivotX");
|
||||
_pivotY = CreateUIValue(Data.Pivot.y, "PivotY");
|
||||
AddDragControl(Rotate, "Name");
|
||||
AddDragControl(LayerNumber, "Name");
|
||||
AddDragControl(LayerHeight, "Name");
|
||||
AddDragControl(ScaleX, "Name");
|
||||
AddDragControl(ScaleY, "Name");
|
||||
AddDragControl(ScaleZ, "Name");
|
||||
AddDragControl(_pivotX, _pivotY, "Name");
|
||||
AddDragControl(_biasX, "Name");
|
||||
AddDragControl(_biasY, "Name");
|
||||
AddDragControl(BiasZ, "Name");
|
||||
BindScaleData();
|
||||
BindBiasData();
|
||||
BindPivot();
|
||||
BindLayerNumber();
|
||||
BindLayerHeight();
|
||||
BindRotate();
|
||||
Instance = this;
|
||||
var initFinish = InitFinish;
|
||||
if (initFinish != null)
|
||||
{
|
||||
initFinish(this);
|
||||
}
|
||||
BindOnEnable_MoveCenter();
|
||||
}
|
||||
|
||||
private void ResetValue()
|
||||
{
|
||||
_biasX.Value = Data.Bias.x;
|
||||
_biasY.Value = Data.Bias.y;
|
||||
BiasZ.Value = Data.Bias.z;
|
||||
ScaleX.Value = Data.Scale.x;
|
||||
ScaleY.Value = Data.Scale.y;
|
||||
ScaleZ.Value = Data.Scale.z;
|
||||
_pivotX.Value = Data.Pivot.x;
|
||||
_pivotY.Value = Data.Pivot.y;
|
||||
Rotate.Value = Data.Rotate;
|
||||
enableToggle.isOn = Data.Enable;
|
||||
LayerHeight.Value = Data.LayerHeight;
|
||||
LayerNumber.Value = Data.LayerNumber;
|
||||
}
|
||||
|
||||
private void BindOnEnable_MoveCenter()
|
||||
{
|
||||
var canvasMonoEvent = UIManager.CanvasMonoEvent;
|
||||
var rectTransform = (RectTransform)transform;
|
||||
var centerBias = new Vector3(-rectTransform.rect.width / 2f, rectTransform.rect.height / 2f);
|
||||
canvasMonoEvent.onEnableEvent.AddListener(delegate
|
||||
{
|
||||
var isOn = enableToggle.isOn;
|
||||
if (isOn)
|
||||
{
|
||||
UITool.GameObject.transform.position = Input.mousePosition + centerBias;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void BindRotate()
|
||||
{
|
||||
Rotate.OnValueChange += delegate(float f)
|
||||
{
|
||||
Data.Rotate = f;
|
||||
};
|
||||
}
|
||||
|
||||
private void BindLayerHeight()
|
||||
{
|
||||
LayerHeight.OnValueChange += delegate(float f)
|
||||
{
|
||||
Data.LayerHeight = f;
|
||||
};
|
||||
}
|
||||
|
||||
private void BindLayerNumber()
|
||||
{
|
||||
LayerNumber.OnValueChange += delegate(int i)
|
||||
{
|
||||
Data.LayerNumber = i;
|
||||
};
|
||||
}
|
||||
|
||||
private void BindPivot()
|
||||
{
|
||||
var tempPivot = Data.Pivot;
|
||||
var cd = Time.time;
|
||||
_pivotX.OnValueChange += delegate(float f)
|
||||
{
|
||||
var flag = Time.time - cd < Time.fixedDeltaTime;
|
||||
if (!flag)
|
||||
{
|
||||
cd = Time.time;
|
||||
tempPivot.x = f;
|
||||
Data.Pivot = tempPivot;
|
||||
}
|
||||
};
|
||||
_pivotY.OnValueChange += delegate(float f)
|
||||
{
|
||||
var flag2 = Time.time - cd < Time.fixedDeltaTime;
|
||||
if (!flag2)
|
||||
{
|
||||
cd = Time.time;
|
||||
tempPivot.y = f;
|
||||
Data.Pivot = tempPivot;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void BindBiasData()
|
||||
{
|
||||
var tempBias = Data.Bias;
|
||||
_biasX.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempBias.x = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
_biasY.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempBias.y = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
BiasZ.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempBias.z = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
}
|
||||
|
||||
private void BindScaleData()
|
||||
{
|
||||
var tempScale = Data.Scale;
|
||||
ScaleX.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempScale.x = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
ScaleY.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempScale.y = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
ScaleZ.OnValueChange += delegate(float f)
|
||||
{
|
||||
tempScale.z = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
}
|
||||
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
private static event Action<BlueTuPatchUI> InitFinish;
|
||||
|
||||
public static event Action<BlueTuPatchUI> OnInitFinish
|
||||
{
|
||||
add
|
||||
{
|
||||
InitFinish += value;
|
||||
var flag = Instance != null;
|
||||
if (flag)
|
||||
{
|
||||
value(Instance);
|
||||
}
|
||||
}
|
||||
remove => InitFinish -= value;
|
||||
public override void OnEnter()
|
||||
{
|
||||
base.OnEnter();
|
||||
Data = BlueTuUIData.Instance;
|
||||
enableToggle = UITool.GetComponentInChild<Toggle>("XianTuEnableTg");
|
||||
enableToggle.isOn = Data.Enable;
|
||||
enableToggle.onValueChanged.AddListener(delegate (bool value)
|
||||
{
|
||||
Data.Enable = value;
|
||||
});
|
||||
_tipText = UITool.GetComponentInChild<Button>("Tx_Tip");
|
||||
_buildButton = UITool.GetComponentInChild<Button>("Btn_Build");
|
||||
_buildButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onBuildBtn = Data.OnBuildBtn;
|
||||
if (onBuildBtn != null)
|
||||
{
|
||||
onBuildBtn();
|
||||
}
|
||||
});
|
||||
_resetButton = UITool.GetComponentInChild<Button>("Btn_Reset");
|
||||
_resetButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onResetBtn = Data.OnResetBtn;
|
||||
if (onResetBtn != null)
|
||||
{
|
||||
onResetBtn();
|
||||
}
|
||||
ResetValue();
|
||||
});
|
||||
_copyButton = UITool.GetComponentInChild<Button>("Btn_Copy");
|
||||
_copyButton.onClick.AddListener(delegate
|
||||
{
|
||||
var onCopyBtn = Data.OnCopyBtn;
|
||||
if (onCopyBtn != null)
|
||||
{
|
||||
onCopyBtn();
|
||||
}
|
||||
});
|
||||
LayerNumber = CreateUIValue(Data.LayerNumber, "LayerNumber");
|
||||
LayerHeight = CreateUIValue(Data.LayerHeight, "LayerHeight", 20f);
|
||||
var text = "ScaleGroup/Group/ScaleX";
|
||||
var text2 = "ScaleGroup/Group/ScaleY";
|
||||
ScaleX = CreateUIValue(Data.Scale.x, text);
|
||||
ScaleY = CreateUIValue(Data.Scale.y, text2);
|
||||
var text3 = "ScaleGroup/Group/ScaleZ";
|
||||
ScaleZ = CreateUIValue(Data.Scale.z, text3);
|
||||
var text4 = "BiasGroup/Group/BiasX";
|
||||
var text5 = "BiasGroup/Group/BiasY";
|
||||
var text6 = "BiasGroup/Group/BiasZ";
|
||||
_biasX = CreateUIValue(Data.Bias.x, text4, 20f);
|
||||
_biasY = CreateUIValue(Data.Bias.y, text5, 20f);
|
||||
BiasZ = CreateUIValue(Data.Bias.z, text6, 20f);
|
||||
Rotate = CreateUIValue(Data.Rotate, "Rotate", 180f);
|
||||
_pivotX = CreateUIValue(Data.Pivot.x, "PivotX");
|
||||
_pivotY = CreateUIValue(Data.Pivot.y, "PivotY");
|
||||
AddDragControl(Rotate, "Name");
|
||||
AddDragControl(LayerNumber, "Name");
|
||||
AddDragControl(LayerHeight, "Name");
|
||||
AddDragControl(ScaleX, "Name");
|
||||
AddDragControl(ScaleY, "Name");
|
||||
AddDragControl(ScaleZ, "Name");
|
||||
AddDragControl(_pivotX, _pivotY, "Name");
|
||||
AddDragControl(_biasX, "Name");
|
||||
AddDragControl(_biasY, "Name");
|
||||
AddDragControl(BiasZ, "Name");
|
||||
BindScaleData();
|
||||
BindBiasData();
|
||||
BindPivot();
|
||||
BindLayerNumber();
|
||||
BindLayerHeight();
|
||||
BindRotate();
|
||||
Instance = this;
|
||||
var initFinish = InitFinish;
|
||||
if (initFinish != null)
|
||||
{
|
||||
initFinish(this);
|
||||
}
|
||||
BindOnEnable_MoveCenter();
|
||||
}
|
||||
|
||||
private void AddDragControl<T>(UIValue<T> uiValue, string childrenName) where T : IComparable
|
||||
{
|
||||
var flag = uiValue.Components.Length != 0;
|
||||
if (flag)
|
||||
{
|
||||
var parent = uiValue.Components[0].gameObject.transform.parent;
|
||||
var transform = parent.Find(childrenName);
|
||||
bool flag2 = transform;
|
||||
if (flag2)
|
||||
{
|
||||
uiValue.BindDragControl(transform.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void ResetValue()
|
||||
{
|
||||
_biasX.Value = Data.Bias.x;
|
||||
_biasY.Value = Data.Bias.y;
|
||||
BiasZ.Value = Data.Bias.z;
|
||||
ScaleX.Value = Data.Scale.x;
|
||||
ScaleY.Value = Data.Scale.y;
|
||||
ScaleZ.Value = Data.Scale.z;
|
||||
_pivotX.Value = Data.Pivot.x;
|
||||
_pivotY.Value = Data.Pivot.y;
|
||||
Rotate.Value = Data.Rotate;
|
||||
enableToggle.isOn = Data.Enable;
|
||||
LayerHeight.Value = Data.LayerHeight;
|
||||
LayerNumber.Value = Data.LayerNumber;
|
||||
}
|
||||
|
||||
private void AddDragControl<T>(UIValue<T> uiValueX, UIValue<T> uiValueY, string childrenName) where T : IComparable
|
||||
{
|
||||
var flag = uiValueX.Components.Length != 0;
|
||||
if (flag)
|
||||
{
|
||||
var parent = uiValueX.Components[0].gameObject.transform.parent;
|
||||
var transform = parent.Find(childrenName);
|
||||
bool flag2 = transform;
|
||||
if (flag2)
|
||||
{
|
||||
uiValueX.BindDragControl(transform.gameObject);
|
||||
uiValueY.BindDragControl(transform.gameObject);
|
||||
UIValue<T>.BindDragControl(transform.gameObject, uiValueX, uiValueY);
|
||||
}
|
||||
}
|
||||
var flag3 = uiValueY.Components.Length != 0;
|
||||
if (flag3)
|
||||
{
|
||||
var parent2 = uiValueY.Components[0].gameObject.transform.parent;
|
||||
var transform2 = parent2.Find(childrenName);
|
||||
bool flag4 = transform2;
|
||||
if (flag4)
|
||||
{
|
||||
uiValueX.BindDragControl(transform2.gameObject);
|
||||
uiValueY.BindDragControl(transform2.gameObject);
|
||||
UIValue<T>.BindDragControl(transform2.gameObject, uiValueX, uiValueY);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void BindOnEnable_MoveCenter()
|
||||
{
|
||||
var canvasMonoEvent = UIManager.CanvasMonoEvent;
|
||||
var rectTransform = (RectTransform)transform;
|
||||
var centerBias = new Vector3(-rectTransform.rect.width / 2f, rectTransform.rect.height / 2f);
|
||||
canvasMonoEvent.onEnableEvent.AddListener(delegate
|
||||
{
|
||||
var isOn = enableToggle.isOn;
|
||||
if (isOn)
|
||||
{
|
||||
UITool.GameObject.transform.position = Input.mousePosition + centerBias;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private UIValue<T> CreateUIValue<T>(T defaultValue, string groupPath, float maxValue = 10f) where T : IComparable
|
||||
{
|
||||
var uivalue = new UIValue<T>(defaultValue, Array.Empty<Component>());
|
||||
var gameObject = UITool.FindChildGameObject(groupPath);
|
||||
var flag = gameObject == null;
|
||||
UIValue<T> uivalue2;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("没有找到" + groupPath);
|
||||
uivalue2 = uivalue;
|
||||
}
|
||||
else
|
||||
{
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Toggle>());
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Slider>());
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Scrollbar>());
|
||||
var componentsInChildren = gameObject.GetComponentsInChildren<Text>();
|
||||
for (var i = 0; i < componentsInChildren.Length; i++)
|
||||
{
|
||||
var flag2 = componentsInChildren[i].name == "ValueText";
|
||||
if (flag2)
|
||||
{
|
||||
uivalue.Bind(componentsInChildren[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<InputField>());
|
||||
uivalue.MaxValue = maxValue;
|
||||
uivalue2 = uivalue;
|
||||
}
|
||||
return uivalue2;
|
||||
}
|
||||
private void BindRotate()
|
||||
{
|
||||
Rotate.OnValueChange += delegate (float f)
|
||||
{
|
||||
Data.Rotate = f;
|
||||
};
|
||||
}
|
||||
|
||||
public Toggle enableToggle;
|
||||
private void BindLayerHeight()
|
||||
{
|
||||
LayerHeight.OnValueChange += delegate (float f)
|
||||
{
|
||||
Data.LayerHeight = f;
|
||||
};
|
||||
}
|
||||
|
||||
private Button _tipText;
|
||||
private void BindLayerNumber()
|
||||
{
|
||||
LayerNumber.OnValueChange += delegate (int i)
|
||||
{
|
||||
Data.LayerNumber = i;
|
||||
};
|
||||
}
|
||||
|
||||
private Button _buildButton;
|
||||
private void BindPivot()
|
||||
{
|
||||
var tempPivot = Data.Pivot;
|
||||
var cd = Time.time;
|
||||
_pivotX.OnValueChange += delegate (float f)
|
||||
{
|
||||
var flag = Time.time - cd < Time.fixedDeltaTime;
|
||||
if (!flag)
|
||||
{
|
||||
cd = Time.time;
|
||||
tempPivot.x = f;
|
||||
Data.Pivot = tempPivot;
|
||||
}
|
||||
};
|
||||
_pivotY.OnValueChange += delegate (float f)
|
||||
{
|
||||
var flag2 = Time.time - cd < Time.fixedDeltaTime;
|
||||
if (!flag2)
|
||||
{
|
||||
cd = Time.time;
|
||||
tempPivot.y = f;
|
||||
Data.Pivot = tempPivot;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private Button _resetButton;
|
||||
private void BindBiasData()
|
||||
{
|
||||
var tempBias = Data.Bias;
|
||||
_biasX.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempBias.x = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
_biasY.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempBias.y = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
BiasZ.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempBias.z = f;
|
||||
Data.Bias = tempBias;
|
||||
};
|
||||
}
|
||||
|
||||
public UIValue<int> LayerNumber;
|
||||
private void BindScaleData()
|
||||
{
|
||||
var tempScale = Data.Scale;
|
||||
ScaleX.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempScale.x = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
ScaleY.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempScale.y = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
ScaleZ.OnValueChange += delegate (float f)
|
||||
{
|
||||
tempScale.z = f;
|
||||
Data.Scale = tempScale;
|
||||
};
|
||||
}
|
||||
|
||||
public UIValue<float> LayerHeight;
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
private static event Action<BlueTuPatchUI> InitFinish;
|
||||
|
||||
public UIValue<float> ScaleX;
|
||||
public static event Action<BlueTuPatchUI> OnInitFinish
|
||||
{
|
||||
add
|
||||
{
|
||||
InitFinish += value;
|
||||
var flag = Instance != null;
|
||||
if (flag)
|
||||
{
|
||||
value(Instance);
|
||||
}
|
||||
}
|
||||
remove => InitFinish -= value;
|
||||
}
|
||||
|
||||
public UIValue<float> ScaleY;
|
||||
private void AddDragControl<T>(UIValue<T> uiValue, string childrenName) where T : IComparable
|
||||
{
|
||||
var flag = uiValue.Components.Length != 0;
|
||||
if (flag)
|
||||
{
|
||||
var parent = uiValue.Components[0].gameObject.transform.parent;
|
||||
var transform = parent.Find(childrenName);
|
||||
bool flag2 = transform;
|
||||
if (flag2)
|
||||
{
|
||||
uiValue.BindDragControl(transform.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public UIValue<float> ScaleZ;
|
||||
private void AddDragControl<T>(UIValue<T> uiValueX, UIValue<T> uiValueY, string childrenName) where T : IComparable
|
||||
{
|
||||
var flag = uiValueX.Components.Length != 0;
|
||||
if (flag)
|
||||
{
|
||||
var parent = uiValueX.Components[0].gameObject.transform.parent;
|
||||
var transform = parent.Find(childrenName);
|
||||
bool flag2 = transform;
|
||||
if (flag2)
|
||||
{
|
||||
uiValueX.BindDragControl(transform.gameObject);
|
||||
uiValueY.BindDragControl(transform.gameObject);
|
||||
UIValue<T>.BindDragControl(transform.gameObject, uiValueX, uiValueY);
|
||||
}
|
||||
}
|
||||
var flag3 = uiValueY.Components.Length != 0;
|
||||
if (flag3)
|
||||
{
|
||||
var parent2 = uiValueY.Components[0].gameObject.transform.parent;
|
||||
var transform2 = parent2.Find(childrenName);
|
||||
bool flag4 = transform2;
|
||||
if (flag4)
|
||||
{
|
||||
uiValueX.BindDragControl(transform2.gameObject);
|
||||
uiValueY.BindDragControl(transform2.gameObject);
|
||||
UIValue<T>.BindDragControl(transform2.gameObject, uiValueX, uiValueY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public UIValue<float> BiasZ;
|
||||
private UIValue<T> CreateUIValue<T>(T defaultValue, string groupPath, float maxValue = 10f) where T : IComparable
|
||||
{
|
||||
var uivalue = new UIValue<T>(defaultValue, Array.Empty<Component>());
|
||||
var gameObject = UITool.FindChildGameObject(groupPath);
|
||||
var flag = gameObject == null;
|
||||
UIValue<T> uivalue2;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("没有找到" + groupPath);
|
||||
uivalue2 = uivalue;
|
||||
}
|
||||
else
|
||||
{
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Toggle>());
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Slider>());
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<Scrollbar>());
|
||||
var componentsInChildren = gameObject.GetComponentsInChildren<Text>();
|
||||
for (var i = 0; i < componentsInChildren.Length; i++)
|
||||
{
|
||||
var flag2 = componentsInChildren[i].name == "ValueText";
|
||||
if (flag2)
|
||||
{
|
||||
uivalue.Bind(componentsInChildren[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
uivalue.Bind(gameObject.GetComponentInChildren<InputField>());
|
||||
uivalue.MaxValue = maxValue;
|
||||
uivalue2 = uivalue;
|
||||
}
|
||||
return uivalue2;
|
||||
}
|
||||
|
||||
public UIValue<float> Rotate;
|
||||
public Toggle enableToggle;
|
||||
|
||||
private UIValue<float> _pivotX;
|
||||
private Button _tipText;
|
||||
|
||||
private UIValue<float> _pivotY;
|
||||
private Button _buildButton;
|
||||
|
||||
private UIValue<float> _biasX;
|
||||
private Button _resetButton;
|
||||
|
||||
private UIValue<float> _biasY;
|
||||
public UIValue<int> LayerNumber;
|
||||
|
||||
private Button _copyButton;
|
||||
}
|
||||
public UIValue<float> LayerHeight;
|
||||
|
||||
public UIValue<float> ScaleX;
|
||||
|
||||
public UIValue<float> ScaleY;
|
||||
|
||||
public UIValue<float> ScaleZ;
|
||||
|
||||
public UIValue<float> BiasZ;
|
||||
|
||||
public UIValue<float> Rotate;
|
||||
|
||||
private UIValue<float> _pivotX;
|
||||
|
||||
private UIValue<float> _pivotY;
|
||||
|
||||
private UIValue<float> _biasX;
|
||||
|
||||
private UIValue<float> _biasY;
|
||||
|
||||
private Button _copyButton;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,22 +4,22 @@ using UnityEngine.Serialization;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
public class CanvasMonoEvent : MonoBehaviour
|
||||
{
|
||||
private void Awake()
|
||||
{
|
||||
onEnableEvent = new UnityEvent();
|
||||
}
|
||||
public class CanvasMonoEvent : MonoBehaviour
|
||||
{
|
||||
private void Awake()
|
||||
{
|
||||
onEnableEvent = new UnityEvent();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
var onEnableEvent = this.onEnableEvent;
|
||||
if (onEnableEvent != null)
|
||||
{
|
||||
onEnableEvent.Invoke();
|
||||
}
|
||||
}
|
||||
private void OnEnable()
|
||||
{
|
||||
var onEnableEvent = this.onEnableEvent;
|
||||
if (onEnableEvent != null)
|
||||
{
|
||||
onEnableEvent.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
[FormerlySerializedAs("OnEnableEvent")] public UnityEvent onEnableEvent;
|
||||
}
|
||||
[FormerlySerializedAs("OnEnableEvent")] public UnityEvent onEnableEvent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,93 +7,93 @@ using Object = UnityEngine.Object;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
public class PanelManager
|
||||
{
|
||||
public LoadManager Loader { get; private set; }
|
||||
public class PanelManager
|
||||
{
|
||||
public LoadManager Loader { get; private set; }
|
||||
|
||||
public PanelManager(GameObject rootCanvas)
|
||||
{
|
||||
_panelStack = new Stack<BasePanel>();
|
||||
_panelDict = new Dictionary<string, BasePanel>();
|
||||
this._rootCanvas = rootCanvas;
|
||||
Loader = Singleton<LoadManager>.Instance;
|
||||
_uiAssembly = GetType().Assembly;
|
||||
}
|
||||
public PanelManager(GameObject rootCanvas)
|
||||
{
|
||||
_panelStack = new Stack<BasePanel>();
|
||||
_panelDict = new Dictionary<string, BasePanel>();
|
||||
this._rootCanvas = rootCanvas;
|
||||
Loader = Singleton<LoadManager>.Instance;
|
||||
_uiAssembly = GetType().Assembly;
|
||||
}
|
||||
|
||||
public void Push(string nextPanelName)
|
||||
{
|
||||
var flag = _panelStack.Count > 0;
|
||||
if (flag)
|
||||
{
|
||||
_panelStack.Peek().OnPause();
|
||||
}
|
||||
var flag2 = _panelDict.ContainsKey(nextPanelName);
|
||||
BasePanel basePanel;
|
||||
if (flag2)
|
||||
{
|
||||
basePanel = _panelDict[nextPanelName];
|
||||
basePanel.OnResume();
|
||||
}
|
||||
else
|
||||
{
|
||||
var text = Path.Combine(UIPrefabDir, nextPanelName);
|
||||
var gameObject = Loader.LoadPrefab(text);
|
||||
var flag3 = gameObject == null;
|
||||
if (flag3)
|
||||
{
|
||||
Debug.LogError("没有找到" + text);
|
||||
var flag4 = _panelStack.Count > 0;
|
||||
if (flag4)
|
||||
{
|
||||
_panelStack.Peek().OnResume();
|
||||
}
|
||||
return;
|
||||
}
|
||||
gameObject = Object.Instantiate(gameObject, _rootCanvas.transform);
|
||||
var type = _uiAssembly.GetType(_panelNameSapce + "." + nextPanelName);
|
||||
basePanel = (BasePanel)gameObject.AddComponent(type);
|
||||
var uitool = new UITool(gameObject);
|
||||
basePanel.Init(this);
|
||||
basePanel.Init(uitool);
|
||||
_panelDict.Add(nextPanelName, basePanel);
|
||||
basePanel.OnEnter();
|
||||
}
|
||||
_panelStack.Push(basePanel);
|
||||
}
|
||||
public void Push(string nextPanelName)
|
||||
{
|
||||
var flag = _panelStack.Count > 0;
|
||||
if (flag)
|
||||
{
|
||||
_panelStack.Peek().OnPause();
|
||||
}
|
||||
var flag2 = _panelDict.ContainsKey(nextPanelName);
|
||||
BasePanel basePanel;
|
||||
if (flag2)
|
||||
{
|
||||
basePanel = _panelDict[nextPanelName];
|
||||
basePanel.OnResume();
|
||||
}
|
||||
else
|
||||
{
|
||||
var text = Path.Combine(UIPrefabDir, nextPanelName);
|
||||
var gameObject = Loader.LoadPrefab(text);
|
||||
var flag3 = gameObject == null;
|
||||
if (flag3)
|
||||
{
|
||||
Debug.LogError("没有找到" + text);
|
||||
var flag4 = _panelStack.Count > 0;
|
||||
if (flag4)
|
||||
{
|
||||
_panelStack.Peek().OnResume();
|
||||
}
|
||||
return;
|
||||
}
|
||||
gameObject = Object.Instantiate(gameObject, _rootCanvas.transform);
|
||||
var type = _uiAssembly.GetType(_panelNameSapce + "." + nextPanelName);
|
||||
basePanel = (BasePanel)gameObject.AddComponent(type);
|
||||
var uitool = new UITool(gameObject);
|
||||
basePanel.Init(this);
|
||||
basePanel.Init(uitool);
|
||||
_panelDict.Add(nextPanelName, basePanel);
|
||||
basePanel.OnEnter();
|
||||
}
|
||||
_panelStack.Push(basePanel);
|
||||
}
|
||||
|
||||
public void Pop()
|
||||
{
|
||||
var flag = _panelStack.Count > 0;
|
||||
if (flag)
|
||||
{
|
||||
var basePanel = _panelStack.Pop();
|
||||
basePanel.OnPause();
|
||||
}
|
||||
var flag2 = _panelStack.Count > 0;
|
||||
if (flag2)
|
||||
{
|
||||
_panelStack.Peek().OnResume();
|
||||
}
|
||||
}
|
||||
public void Pop()
|
||||
{
|
||||
var flag = _panelStack.Count > 0;
|
||||
if (flag)
|
||||
{
|
||||
var basePanel = _panelStack.Pop();
|
||||
basePanel.OnPause();
|
||||
}
|
||||
var flag2 = _panelStack.Count > 0;
|
||||
if (flag2)
|
||||
{
|
||||
_panelStack.Peek().OnResume();
|
||||
}
|
||||
}
|
||||
|
||||
public void Exit()
|
||||
{
|
||||
for (var i = 0; i < _panelDict.Count; i++)
|
||||
{
|
||||
_panelDict.ElementAt(i).Value.OnExit();
|
||||
}
|
||||
}
|
||||
public void Exit()
|
||||
{
|
||||
for (var i = 0; i < _panelDict.Count; i++)
|
||||
{
|
||||
_panelDict.ElementAt(i).Value.OnExit();
|
||||
}
|
||||
}
|
||||
|
||||
private Stack<BasePanel> _panelStack;
|
||||
private Stack<BasePanel> _panelStack;
|
||||
|
||||
private Dictionary<string, BasePanel> _panelDict;
|
||||
private Dictionary<string, BasePanel> _panelDict;
|
||||
|
||||
private GameObject _rootCanvas;
|
||||
private GameObject _rootCanvas;
|
||||
|
||||
private Assembly _uiAssembly;
|
||||
private Assembly _uiAssembly;
|
||||
|
||||
private string _panelNameSapce = "XianTu.UI";
|
||||
private string _panelNameSapce = "XianTu.UI";
|
||||
|
||||
public readonly string UIPrefabDir = "Prefabs/UI";
|
||||
}
|
||||
public readonly string UIPrefabDir = "Prefabs/UI";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,69 +4,69 @@ using Object = UnityEngine.Object;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
public class UIManager
|
||||
{
|
||||
public GameObject CanvasObj { get; private set; }
|
||||
public class UIManager
|
||||
{
|
||||
public GameObject CanvasObj { get; private set; }
|
||||
|
||||
public bool ActiveSelf => CanvasObj.activeSelf;
|
||||
public bool ActiveSelf => CanvasObj.activeSelf;
|
||||
|
||||
public void SetActive(bool value)
|
||||
{
|
||||
CanvasObj.SetActive(value);
|
||||
}
|
||||
public void SetActive(bool value)
|
||||
{
|
||||
CanvasObj.SetActive(value);
|
||||
}
|
||||
|
||||
public void SwitchDisplay()
|
||||
{
|
||||
CanvasObj.SetActive(CanvasObj.activeSelf);
|
||||
}
|
||||
public void SwitchDisplay()
|
||||
{
|
||||
CanvasObj.SetActive(CanvasObj.activeSelf);
|
||||
}
|
||||
|
||||
public UIManager(Action<object> debugLog = null)
|
||||
{
|
||||
Instance = this;
|
||||
var flag = debugLog == null;
|
||||
if (flag)
|
||||
{
|
||||
DebugLog = new Action<object>(Debug.Log);
|
||||
}
|
||||
var flag2 = !LoadCanvas();
|
||||
if (flag2)
|
||||
{
|
||||
DebugLog("UI管理器加载失败");
|
||||
}
|
||||
else
|
||||
{
|
||||
PanelManager = new PanelManager(CanvasObj);
|
||||
}
|
||||
}
|
||||
public UIManager(Action<object> debugLog = null)
|
||||
{
|
||||
Instance = this;
|
||||
var flag = debugLog == null;
|
||||
if (flag)
|
||||
{
|
||||
DebugLog = new Action<object>(Debug.Log);
|
||||
}
|
||||
var flag2 = !LoadCanvas();
|
||||
if (flag2)
|
||||
{
|
||||
DebugLog("UI管理器加载失败");
|
||||
}
|
||||
else
|
||||
{
|
||||
PanelManager = new PanelManager(CanvasObj);
|
||||
}
|
||||
}
|
||||
|
||||
public PanelManager PanelManager { get; private set; }
|
||||
public PanelManager PanelManager { get; private set; }
|
||||
|
||||
public static UIManager Instance { get; private set; }
|
||||
public static UIManager Instance { get; private set; }
|
||||
|
||||
public CanvasMonoEvent CanvasMonoEvent { get; private set; }
|
||||
public CanvasMonoEvent CanvasMonoEvent { get; private set; }
|
||||
|
||||
private bool LoadCanvas()
|
||||
{
|
||||
var gameObject = Singleton<LoadManager>.Instance.LoadPrefab("Prefabs/XianTuCanvas");
|
||||
var flag = gameObject != null;
|
||||
bool flag2;
|
||||
if (flag)
|
||||
{
|
||||
var gameObject2 = Object.Instantiate(gameObject);
|
||||
CanvasObj = gameObject2;
|
||||
CanvasMonoEvent = gameObject2.AddComponent<CanvasMonoEvent>();
|
||||
gameObject2.SetActive(false);
|
||||
flag2 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
flag2 = false;
|
||||
}
|
||||
return flag2;
|
||||
}
|
||||
private bool LoadCanvas()
|
||||
{
|
||||
var gameObject = Singleton<LoadManager>.Instance.LoadPrefab("Prefabs/XianTuCanvas");
|
||||
var flag = gameObject != null;
|
||||
bool flag2;
|
||||
if (flag)
|
||||
{
|
||||
var gameObject2 = Object.Instantiate(gameObject);
|
||||
CanvasObj = gameObject2;
|
||||
CanvasMonoEvent = gameObject2.AddComponent<CanvasMonoEvent>();
|
||||
gameObject2.SetActive(false);
|
||||
flag2 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
flag2 = false;
|
||||
}
|
||||
return flag2;
|
||||
}
|
||||
|
||||
private const string CanvasPrefabPath = "Prefabs/XianTuCanvas";
|
||||
private const string CanvasPrefabPath = "Prefabs/XianTuCanvas";
|
||||
|
||||
public readonly Action<object> DebugLog;
|
||||
}
|
||||
public readonly Action<object> DebugLog;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,144 +5,144 @@ using UnityEngine;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class UITool
|
||||
{
|
||||
public UITool(GameObject uiGameObject)
|
||||
{
|
||||
GameObject = uiGameObject;
|
||||
Transform = GameObject.transform;
|
||||
}
|
||||
internal class UITool
|
||||
{
|
||||
public UITool(GameObject uiGameObject)
|
||||
{
|
||||
GameObject = uiGameObject;
|
||||
Transform = GameObject.transform;
|
||||
}
|
||||
|
||||
public T GetComponentInChild<T>(string path) where T : class
|
||||
{
|
||||
var gameObject = FindChildGameObject(path);
|
||||
bool flag = gameObject;
|
||||
T t;
|
||||
if (flag)
|
||||
{
|
||||
t = gameObject.GetComponent<T>();
|
||||
}
|
||||
else
|
||||
{
|
||||
t = default(T);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
public T GetComponentInChild<T>(string path) where T : class
|
||||
{
|
||||
var gameObject = FindChildGameObject(path);
|
||||
bool flag = gameObject;
|
||||
T t;
|
||||
if (flag)
|
||||
{
|
||||
t = gameObject.GetComponent<T>();
|
||||
}
|
||||
else
|
||||
{
|
||||
t = default(T);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
public GameObject FindChildGameObject(string path)
|
||||
{
|
||||
var array = path.Split(['/']);
|
||||
var flag = array.Length == 0;
|
||||
GameObject gameObject;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("空路径");
|
||||
gameObject = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag2 = array[0] == "";
|
||||
GameObject gameObject2;
|
||||
if (flag2)
|
||||
{
|
||||
gameObject2 = StepByStepFindChild(Transform, array.Skip(1).ToArray());
|
||||
var flag3 = gameObject2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
return gameObject2.gameObject;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gameObject2 = BreadthFindChild(Transform, array[0]);
|
||||
var flag4 = gameObject2 != null && array.Length > 1;
|
||||
if (flag4)
|
||||
{
|
||||
gameObject2 = StepByStepFindChild(gameObject2.transform, array.Skip(1).ToArray());
|
||||
}
|
||||
}
|
||||
var flag5 = gameObject2 == null;
|
||||
if (flag5)
|
||||
{
|
||||
Debug.LogError("找不到" + path);
|
||||
}
|
||||
gameObject = gameObject2;
|
||||
}
|
||||
return gameObject;
|
||||
}
|
||||
public GameObject FindChildGameObject(string path)
|
||||
{
|
||||
var array = path.Split(['/']);
|
||||
var flag = array.Length == 0;
|
||||
GameObject gameObject;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("空路径");
|
||||
gameObject = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag2 = array[0] == "";
|
||||
GameObject gameObject2;
|
||||
if (flag2)
|
||||
{
|
||||
gameObject2 = StepByStepFindChild(Transform, array.Skip(1).ToArray());
|
||||
var flag3 = gameObject2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
return gameObject2.gameObject;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gameObject2 = BreadthFindChild(Transform, array[0]);
|
||||
var flag4 = gameObject2 != null && array.Length > 1;
|
||||
if (flag4)
|
||||
{
|
||||
gameObject2 = StepByStepFindChild(gameObject2.transform, array.Skip(1).ToArray());
|
||||
}
|
||||
}
|
||||
var flag5 = gameObject2 == null;
|
||||
if (flag5)
|
||||
{
|
||||
Debug.LogError("找不到" + path);
|
||||
}
|
||||
gameObject = gameObject2;
|
||||
}
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
private static GameObject BreadthFindChild(Transform parent, string name)
|
||||
{
|
||||
var flag = parent == null;
|
||||
GameObject gameObject;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("不要传个空的过来!");
|
||||
gameObject = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var queue = new Queue<Transform>();
|
||||
queue.Enqueue(parent);
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
var transform = queue.Dequeue();
|
||||
var transform2 = transform.Find(name);
|
||||
var flag2 = transform2 != null;
|
||||
if (flag2)
|
||||
{
|
||||
return transform2.gameObject;
|
||||
}
|
||||
for (var i = 0; i < transform.childCount; i++)
|
||||
{
|
||||
queue.Enqueue(transform.GetChild(i));
|
||||
}
|
||||
}
|
||||
gameObject = null;
|
||||
}
|
||||
return gameObject;
|
||||
}
|
||||
private static GameObject BreadthFindChild(Transform parent, string name)
|
||||
{
|
||||
var flag = parent == null;
|
||||
GameObject gameObject;
|
||||
if (flag)
|
||||
{
|
||||
Debug.LogError("不要传个空的过来!");
|
||||
gameObject = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var queue = new Queue<Transform>();
|
||||
queue.Enqueue(parent);
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
var transform = queue.Dequeue();
|
||||
var transform2 = transform.Find(name);
|
||||
var flag2 = transform2 != null;
|
||||
if (flag2)
|
||||
{
|
||||
return transform2.gameObject;
|
||||
}
|
||||
for (var i = 0; i < transform.childCount; i++)
|
||||
{
|
||||
queue.Enqueue(transform.GetChild(i));
|
||||
}
|
||||
}
|
||||
gameObject = null;
|
||||
}
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
public T GetOrAddComponentInChildren<T>(string name) where T : Component
|
||||
{
|
||||
var gameObject = FindChildGameObject(name);
|
||||
var flag = gameObject != null;
|
||||
T t2;
|
||||
if (flag)
|
||||
{
|
||||
var t = gameObject.GetComponent<T>();
|
||||
var flag2 = t == null;
|
||||
if (flag2)
|
||||
{
|
||||
t = gameObject.AddComponent<T>();
|
||||
}
|
||||
t2 = t;
|
||||
}
|
||||
else
|
||||
{
|
||||
t2 = default(T);
|
||||
}
|
||||
return t2;
|
||||
}
|
||||
public T GetOrAddComponentInChildren<T>(string name) where T : Component
|
||||
{
|
||||
var gameObject = FindChildGameObject(name);
|
||||
var flag = gameObject != null;
|
||||
T t2;
|
||||
if (flag)
|
||||
{
|
||||
var t = gameObject.GetComponent<T>();
|
||||
var flag2 = t == null;
|
||||
if (flag2)
|
||||
{
|
||||
t = gameObject.AddComponent<T>();
|
||||
}
|
||||
t2 = t;
|
||||
}
|
||||
else
|
||||
{
|
||||
t2 = default(T);
|
||||
}
|
||||
return t2;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
internal static GameObject StepByStepFindChild(Transform parent, string[] filepaths)
|
||||
{
|
||||
var transform = parent;
|
||||
for (var i = 0; i < filepaths.Length; i++)
|
||||
{
|
||||
transform = transform.Find(filepaths[i]);
|
||||
var flag = transform == null;
|
||||
if (flag)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return transform.gameObject;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
internal static GameObject StepByStepFindChild(Transform parent, string[] filepaths)
|
||||
{
|
||||
var transform = parent;
|
||||
for (var i = 0; i < filepaths.Length; i++)
|
||||
{
|
||||
transform = transform.Find(filepaths[i]);
|
||||
var flag = transform == null;
|
||||
if (flag)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return transform.gameObject;
|
||||
}
|
||||
|
||||
public readonly GameObject GameObject;
|
||||
public readonly GameObject GameObject;
|
||||
|
||||
public readonly Transform Transform;
|
||||
}
|
||||
public readonly Transform Transform;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class UIType
|
||||
{
|
||||
public UIType(string prefabPath)
|
||||
{
|
||||
this.PrefabPath = prefabPath;
|
||||
Name = prefabPath.Substring(prefabPath.LastIndexOf('/') + 1);
|
||||
}
|
||||
internal class UIType
|
||||
{
|
||||
public UIType(string prefabPath)
|
||||
{
|
||||
this.PrefabPath = prefabPath;
|
||||
Name = prefabPath.Substring(prefabPath.LastIndexOf('/') + 1);
|
||||
}
|
||||
|
||||
public string PrefabPath;
|
||||
public string PrefabPath;
|
||||
|
||||
public string Name;
|
||||
}
|
||||
public string Name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,414 +8,414 @@ using UnityEngine.UI;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class UIValue<T> where T : IComparable
|
||||
{
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
private event Action<object> ValueUpdate;
|
||||
internal class UIValue<T> where T : IComparable
|
||||
{
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
private event Action<object> ValueUpdate;
|
||||
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event Action<T> OnValueChange;
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event Action<T> OnValueChange;
|
||||
|
||||
public T Value
|
||||
{
|
||||
get => _value;
|
||||
public T Value
|
||||
{
|
||||
get => _value;
|
||||
set
|
||||
{
|
||||
var publicValueLock = _publicValueLock;
|
||||
if (!publicValueLock)
|
||||
{
|
||||
_publicValueLock = true;
|
||||
ValueUpdate(value);
|
||||
_publicValueLock = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
var publicValueLock = _publicValueLock;
|
||||
if (!publicValueLock)
|
||||
{
|
||||
_publicValueLock = true;
|
||||
ValueUpdate(value);
|
||||
_publicValueLock = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float MaxValue
|
||||
{
|
||||
get => _maxValue;
|
||||
public float MaxValue
|
||||
{
|
||||
get => _maxValue;
|
||||
set
|
||||
{
|
||||
_maxValue = value;
|
||||
for (var i = 0; i < Components.Length; i++)
|
||||
{
|
||||
var component = Components[i];
|
||||
var component2 = component;
|
||||
var slider = component2 as Slider;
|
||||
if (slider != null)
|
||||
{
|
||||
slider.maxValue = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
_maxValue = value;
|
||||
for (var i = 0; i < Components.Length; i++)
|
||||
{
|
||||
var component = Components[i];
|
||||
var component2 = component;
|
||||
var slider = component2 as Slider;
|
||||
if (slider != null)
|
||||
{
|
||||
slider.maxValue = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public UIValue(T defaultValue, params Component[] components)
|
||||
{
|
||||
var flag = typeof(T) == typeof(bool);
|
||||
if (flag)
|
||||
{
|
||||
_valueType = EValueType.Bool;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag2 = typeof(T) == typeof(int);
|
||||
if (flag2)
|
||||
{
|
||||
_valueType = EValueType.Int;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag3 = typeof(T) == typeof(float);
|
||||
if (flag3)
|
||||
{
|
||||
_valueType = EValueType.Float;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag4 = typeof(T) == typeof(string);
|
||||
if (flag4)
|
||||
{
|
||||
_valueType = EValueType.String;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag5 = typeof(T) == typeof(double);
|
||||
if (flag5)
|
||||
{
|
||||
_valueType = EValueType.Double;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ValueUpdate = delegate(object v)
|
||||
{
|
||||
switch (_valueType)
|
||||
{
|
||||
case EValueType.Bool:
|
||||
_value = (T)((object)Convert.ToBoolean(v));
|
||||
break;
|
||||
case EValueType.Int:
|
||||
_value = (T)((object)Convert.ToInt32(v));
|
||||
break;
|
||||
case EValueType.Float:
|
||||
_value = (T)((object)Convert.ToSingle(v));
|
||||
break;
|
||||
case EValueType.Double:
|
||||
_value = (T)((object)Convert.ToDouble(v));
|
||||
break;
|
||||
case EValueType.String:
|
||||
_value = (T)((object)_valueType.ToString());
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
var onValueChange = OnValueChange;
|
||||
if (onValueChange != null)
|
||||
{
|
||||
onValueChange(_value);
|
||||
}
|
||||
};
|
||||
foreach (var component in components)
|
||||
{
|
||||
var component2 = component;
|
||||
var component3 = component2;
|
||||
var inputField = component3 as InputField;
|
||||
if (inputField == null)
|
||||
{
|
||||
var toggle = component3 as Toggle;
|
||||
if (toggle == null)
|
||||
{
|
||||
var slider = component3 as Slider;
|
||||
if (slider == null)
|
||||
{
|
||||
var text = component3 as Text;
|
||||
if (text == null)
|
||||
{
|
||||
var scrollbar = component3 as Scrollbar;
|
||||
if (scrollbar != null)
|
||||
{
|
||||
Bind(scrollbar);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(slider);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(toggle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(inputField);
|
||||
}
|
||||
}
|
||||
}
|
||||
public UIValue(T defaultValue, params Component[] components)
|
||||
{
|
||||
var flag = typeof(T) == typeof(bool);
|
||||
if (flag)
|
||||
{
|
||||
_valueType = EValueType.Bool;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag2 = typeof(T) == typeof(int);
|
||||
if (flag2)
|
||||
{
|
||||
_valueType = EValueType.Int;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag3 = typeof(T) == typeof(float);
|
||||
if (flag3)
|
||||
{
|
||||
_valueType = EValueType.Float;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag4 = typeof(T) == typeof(string);
|
||||
if (flag4)
|
||||
{
|
||||
_valueType = EValueType.String;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag5 = typeof(T) == typeof(double);
|
||||
if (flag5)
|
||||
{
|
||||
_valueType = EValueType.Double;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ValueUpdate = delegate (object v)
|
||||
{
|
||||
switch (_valueType)
|
||||
{
|
||||
case EValueType.Bool:
|
||||
_value = (T)((object)Convert.ToBoolean(v));
|
||||
break;
|
||||
case EValueType.Int:
|
||||
_value = (T)((object)Convert.ToInt32(v));
|
||||
break;
|
||||
case EValueType.Float:
|
||||
_value = (T)((object)Convert.ToSingle(v));
|
||||
break;
|
||||
case EValueType.Double:
|
||||
_value = (T)((object)Convert.ToDouble(v));
|
||||
break;
|
||||
case EValueType.String:
|
||||
_value = (T)((object)_valueType.ToString());
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
var onValueChange = OnValueChange;
|
||||
if (onValueChange != null)
|
||||
{
|
||||
onValueChange(_value);
|
||||
}
|
||||
};
|
||||
foreach (var component in components)
|
||||
{
|
||||
var component2 = component;
|
||||
var component3 = component2;
|
||||
var inputField = component3 as InputField;
|
||||
if (inputField == null)
|
||||
{
|
||||
var toggle = component3 as Toggle;
|
||||
if (toggle == null)
|
||||
{
|
||||
var slider = component3 as Slider;
|
||||
if (slider == null)
|
||||
{
|
||||
var text = component3 as Text;
|
||||
if (text == null)
|
||||
{
|
||||
var scrollbar = component3 as Scrollbar;
|
||||
if (scrollbar != null)
|
||||
{
|
||||
Bind(scrollbar);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(slider);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(toggle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Bind(inputField);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Bind(Scrollbar scrollBar)
|
||||
{
|
||||
var flag = scrollBar == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(scrollBar).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate(object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
scrollBar.value = Convert.ToSingle(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
scrollBar.onValueChanged.AddListener(delegate(float value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
public void Bind(Scrollbar scrollBar)
|
||||
{
|
||||
var flag = scrollBar == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(scrollBar).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate (object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
scrollBar.value = Convert.ToSingle(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
scrollBar.onValueChanged.AddListener(delegate (float value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void Bind(Text text)
|
||||
{
|
||||
var flag = text == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(text).ToArray();
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate(object value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
justUpdate = true;
|
||||
text.text = string.Format("{0:f2}", value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
public void Bind(Text text)
|
||||
{
|
||||
var flag = text == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(text).ToArray();
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate (object value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
justUpdate = true;
|
||||
text.text = string.Format("{0:f2}", value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public void Bind(Slider slider)
|
||||
{
|
||||
var flag = slider == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(slider).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate(object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
slider.value = Convert.ToSingle(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
slider.onValueChanged.AddListener(delegate(float value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
public void Bind(Slider slider)
|
||||
{
|
||||
var flag = slider == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(slider).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate (object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
slider.value = Convert.ToSingle(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
slider.onValueChanged.AddListener(delegate (float value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void Bind(Toggle toggle)
|
||||
{
|
||||
var flag = toggle == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(toggle).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate(object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
toggle.isOn = Convert.ToBoolean(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
toggle.onValueChanged.AddListener(delegate(bool value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
public void Bind(Toggle toggle)
|
||||
{
|
||||
var flag = toggle == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(toggle).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate (object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
toggle.isOn = Convert.ToBoolean(value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
toggle.onValueChanged.AddListener(delegate (bool value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
hasSet = true;
|
||||
ValueUpdate(value);
|
||||
hasSet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void Bind(InputField inputField)
|
||||
{
|
||||
var flag = inputField == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(inputField).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate(object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
inputField.text = string.Format("{0:f2}", value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
inputField.onValueChanged.AddListener(delegate(string value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
var flag2 = value == "-" || value == "";
|
||||
if (!flag2)
|
||||
{
|
||||
hasSet = true;
|
||||
switch (_valueType)
|
||||
{
|
||||
case EValueType.Bool:
|
||||
ValueUpdate(Convert.ToBoolean(value));
|
||||
break;
|
||||
case EValueType.Int:
|
||||
ValueUpdate(Convert.ToInt32(value));
|
||||
break;
|
||||
case EValueType.Float:
|
||||
ValueUpdate(Convert.ToSingle(value));
|
||||
break;
|
||||
case EValueType.Double:
|
||||
ValueUpdate(Convert.ToDouble(value));
|
||||
break;
|
||||
case EValueType.String:
|
||||
ValueUpdate(value);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
hasSet = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
public void Bind(InputField inputField)
|
||||
{
|
||||
var flag = inputField == null;
|
||||
if (!flag)
|
||||
{
|
||||
Components = Components.Append(inputField).ToArray();
|
||||
var hasSet = false;
|
||||
var justUpdate = false;
|
||||
ValueUpdate += delegate (object value)
|
||||
{
|
||||
var hasSet2 = hasSet;
|
||||
if (!hasSet2)
|
||||
{
|
||||
justUpdate = true;
|
||||
inputField.text = string.Format("{0:f2}", value);
|
||||
justUpdate = false;
|
||||
}
|
||||
};
|
||||
inputField.onValueChanged.AddListener(delegate (string value)
|
||||
{
|
||||
var justUpdate2 = justUpdate;
|
||||
if (!justUpdate2)
|
||||
{
|
||||
var flag2 = value == "-" || value == "";
|
||||
if (!flag2)
|
||||
{
|
||||
hasSet = true;
|
||||
switch (_valueType)
|
||||
{
|
||||
case EValueType.Bool:
|
||||
ValueUpdate(Convert.ToBoolean(value));
|
||||
break;
|
||||
case EValueType.Int:
|
||||
ValueUpdate(Convert.ToInt32(value));
|
||||
break;
|
||||
case EValueType.Float:
|
||||
ValueUpdate(Convert.ToSingle(value));
|
||||
break;
|
||||
case EValueType.Double:
|
||||
ValueUpdate(Convert.ToDouble(value));
|
||||
break;
|
||||
case EValueType.String:
|
||||
ValueUpdate(value);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
hasSet = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void BindDragControl(GameObject gameObject)
|
||||
{
|
||||
var startPosition = default(Vector2);
|
||||
var defaultValue = 0f;
|
||||
var eventTrigger = gameObject.GetComponent<EventTrigger>();
|
||||
var flag = eventTrigger == null;
|
||||
if (flag)
|
||||
{
|
||||
eventTrigger = gameObject.AddComponent<EventTrigger>();
|
||||
}
|
||||
var speed = 0f;
|
||||
eventTrigger.Add(EventTriggerType.BeginDrag, delegate(BaseEventData edata)
|
||||
{
|
||||
var pointerEventData = edata as PointerEventData;
|
||||
var flag2 = pointerEventData != null;
|
||||
if (flag2)
|
||||
{
|
||||
startPosition = pointerEventData.position;
|
||||
defaultValue = Convert.ToSingle(Value);
|
||||
speed = _maxValue / Screen.width * 4f;
|
||||
}
|
||||
});
|
||||
eventTrigger.Add(EventTriggerType.Drag, delegate(BaseEventData edata)
|
||||
{
|
||||
var pointerEventData2 = edata as PointerEventData;
|
||||
var flag3 = pointerEventData2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
var num = (pointerEventData2.position.x - startPosition.x) * speed;
|
||||
ValueUpdate(defaultValue + num);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void BindDragControl(GameObject gameObject)
|
||||
{
|
||||
var startPosition = default(Vector2);
|
||||
var defaultValue = 0f;
|
||||
var eventTrigger = gameObject.GetComponent<EventTrigger>();
|
||||
var flag = eventTrigger == null;
|
||||
if (flag)
|
||||
{
|
||||
eventTrigger = gameObject.AddComponent<EventTrigger>();
|
||||
}
|
||||
var speed = 0f;
|
||||
eventTrigger.Add(EventTriggerType.BeginDrag, delegate (BaseEventData edata)
|
||||
{
|
||||
var pointerEventData = edata as PointerEventData;
|
||||
var flag2 = pointerEventData != null;
|
||||
if (flag2)
|
||||
{
|
||||
startPosition = pointerEventData.position;
|
||||
defaultValue = Convert.ToSingle(Value);
|
||||
speed = _maxValue / Screen.width * 4f;
|
||||
}
|
||||
});
|
||||
eventTrigger.Add(EventTriggerType.Drag, delegate (BaseEventData edata)
|
||||
{
|
||||
var pointerEventData2 = edata as PointerEventData;
|
||||
var flag3 = pointerEventData2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
var num = (pointerEventData2.position.x - startPosition.x) * speed;
|
||||
ValueUpdate(defaultValue + num);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void BindDragControl(GameObject controller, UIValue<T> uiValueX, UIValue<T> uiValueY)
|
||||
{
|
||||
var startPosition = default(Vector2);
|
||||
var defaultValue1 = 0f;
|
||||
var defaultValue2 = 0f;
|
||||
var eventTrigger = controller.GetComponent<EventTrigger>();
|
||||
var flag = eventTrigger == null;
|
||||
if (flag)
|
||||
{
|
||||
eventTrigger = controller.AddComponent<EventTrigger>();
|
||||
}
|
||||
var speed = 0f;
|
||||
eventTrigger.Add(EventTriggerType.BeginDrag, delegate(BaseEventData edata)
|
||||
{
|
||||
var pointerEventData = edata as PointerEventData;
|
||||
var flag2 = pointerEventData != null;
|
||||
if (flag2)
|
||||
{
|
||||
startPosition = pointerEventData.position;
|
||||
defaultValue1 = Convert.ToSingle(uiValueX.Value);
|
||||
defaultValue2 = Convert.ToSingle(uiValueY.Value);
|
||||
speed = uiValueX._maxValue / Screen.width * 4f;
|
||||
}
|
||||
});
|
||||
eventTrigger.Add(EventTriggerType.Drag, delegate(BaseEventData edata)
|
||||
{
|
||||
var pointerEventData2 = edata as PointerEventData;
|
||||
var flag3 = pointerEventData2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
var vector = (pointerEventData2.position - startPosition) * speed;
|
||||
uiValueX.ValueUpdate(defaultValue1 + vector.x);
|
||||
uiValueY.ValueUpdate(defaultValue2 + vector.y);
|
||||
}
|
||||
});
|
||||
}
|
||||
public static void BindDragControl(GameObject controller, UIValue<T> uiValueX, UIValue<T> uiValueY)
|
||||
{
|
||||
var startPosition = default(Vector2);
|
||||
var defaultValue1 = 0f;
|
||||
var defaultValue2 = 0f;
|
||||
var eventTrigger = controller.GetComponent<EventTrigger>();
|
||||
var flag = eventTrigger == null;
|
||||
if (flag)
|
||||
{
|
||||
eventTrigger = controller.AddComponent<EventTrigger>();
|
||||
}
|
||||
var speed = 0f;
|
||||
eventTrigger.Add(EventTriggerType.BeginDrag, delegate (BaseEventData edata)
|
||||
{
|
||||
var pointerEventData = edata as PointerEventData;
|
||||
var flag2 = pointerEventData != null;
|
||||
if (flag2)
|
||||
{
|
||||
startPosition = pointerEventData.position;
|
||||
defaultValue1 = Convert.ToSingle(uiValueX.Value);
|
||||
defaultValue2 = Convert.ToSingle(uiValueY.Value);
|
||||
speed = uiValueX._maxValue / Screen.width * 4f;
|
||||
}
|
||||
});
|
||||
eventTrigger.Add(EventTriggerType.Drag, delegate (BaseEventData edata)
|
||||
{
|
||||
var pointerEventData2 = edata as PointerEventData;
|
||||
var flag3 = pointerEventData2 != null;
|
||||
if (flag3)
|
||||
{
|
||||
var vector = (pointerEventData2.position - startPosition) * speed;
|
||||
uiValueX.ValueUpdate(defaultValue1 + vector.x);
|
||||
uiValueY.ValueUpdate(defaultValue2 + vector.y);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private T _value;
|
||||
private T _value;
|
||||
|
||||
private float _maxValue = 1f;
|
||||
private float _maxValue = 1f;
|
||||
|
||||
private readonly EValueType _valueType;
|
||||
private readonly EValueType _valueType;
|
||||
|
||||
public Component[] Components = new Component[0];
|
||||
public Component[] Components = new Component[0];
|
||||
|
||||
private bool _publicValueLock = false;
|
||||
private bool _publicValueLock = false;
|
||||
|
||||
private enum EValueType
|
||||
{
|
||||
Bool,
|
||||
Int,
|
||||
Float,
|
||||
Double,
|
||||
String
|
||||
}
|
||||
}
|
||||
private enum EValueType
|
||||
{
|
||||
Bool,
|
||||
Int,
|
||||
Float,
|
||||
Double,
|
||||
String
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,144 +6,144 @@ using UnityEngine.UI;
|
||||
|
||||
namespace XianTu.UI
|
||||
{
|
||||
internal class XianTuBasePanel : BasePanel
|
||||
{
|
||||
public override void OnEnter()
|
||||
{
|
||||
base.OnEnter();
|
||||
UIManager = UIManager.Instance;
|
||||
BindBaseEvent();
|
||||
_uRect = UITool.GameObject.GetComponent<RectTransform>();
|
||||
_defaultRect = _uRect.rect;
|
||||
}
|
||||
internal class XianTuBasePanel : BasePanel
|
||||
{
|
||||
public override void OnEnter()
|
||||
{
|
||||
base.OnEnter();
|
||||
UIManager = UIManager.Instance;
|
||||
BindBaseEvent();
|
||||
_uRect = UITool.GameObject.GetComponent<RectTransform>();
|
||||
_defaultRect = _uRect.rect;
|
||||
}
|
||||
|
||||
public UIManager UIManager { get; set; }
|
||||
public UIManager UIManager { get; set; }
|
||||
|
||||
private void BindBaseEvent()
|
||||
{
|
||||
BindCloseWindowBtn();
|
||||
var eventTrigger = UITool.GameObject.AddComponent<EventTrigger>();
|
||||
eventTrigger.triggers = [];
|
||||
var transform = UITool.Transform;
|
||||
TriggerAdd(eventTrigger, EventTriggerType.Drag, delegate(BaseEventData x)
|
||||
{
|
||||
var pointerEventData = x as PointerEventData;
|
||||
var flag = pointerEventData != null;
|
||||
if (flag)
|
||||
{
|
||||
var vector = pointerEventData.position - _dragBias;
|
||||
var width = _defaultRect.width;
|
||||
var height = _defaultRect.height;
|
||||
switch (_dragMode)
|
||||
{
|
||||
case EDragMode.Drag:
|
||||
transform.position = _sourceDragPoint + vector;
|
||||
break;
|
||||
case EDragMode.ScaleX:
|
||||
_uRect.sizeDelta = new Vector2(width + vector.x, height);
|
||||
break;
|
||||
case EDragMode.ScaleY:
|
||||
_uRect.sizeDelta = new Vector2(width, height - vector.y);
|
||||
break;
|
||||
case EDragMode.ScaleXY:
|
||||
_uRect.sizeDelta = new Vector2(width + vector.x, height - vector.y);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
});
|
||||
TriggerAdd(eventTrigger, EventTriggerType.PointerDown, delegate(BaseEventData x)
|
||||
{
|
||||
var pointerEventData2 = x as PointerEventData;
|
||||
_sourceDragPoint = transform.position;
|
||||
_dragBias = pointerEventData2.position;
|
||||
var position = pointerEventData2.position;
|
||||
var position2 = transform.position;
|
||||
var num = position.x - position2.x;
|
||||
var num2 = position.y - position2.y;
|
||||
var rect = _uRect.rect;
|
||||
var flag2 = rect.height - 20f < num2;
|
||||
var flag3 = flag2;
|
||||
if (flag3)
|
||||
{
|
||||
_dragMode = EDragMode.Drag;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag4 = num > rect.width - 20f;
|
||||
var flag5 = -num2 > rect.height - 20f;
|
||||
var flag6 = flag4 && flag5;
|
||||
if (flag6)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleXY;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag7 = flag4;
|
||||
if (flag7)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleX;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag8 = flag5;
|
||||
if (flag8)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleY;
|
||||
}
|
||||
else
|
||||
{
|
||||
_dragMode = EDragMode.Drag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
private void BindBaseEvent()
|
||||
{
|
||||
BindCloseWindowBtn();
|
||||
var eventTrigger = UITool.GameObject.AddComponent<EventTrigger>();
|
||||
eventTrigger.triggers = [];
|
||||
var transform = UITool.Transform;
|
||||
TriggerAdd(eventTrigger, EventTriggerType.Drag, delegate (BaseEventData x)
|
||||
{
|
||||
var pointerEventData = x as PointerEventData;
|
||||
var flag = pointerEventData != null;
|
||||
if (flag)
|
||||
{
|
||||
var vector = pointerEventData.position - _dragBias;
|
||||
var width = _defaultRect.width;
|
||||
var height = _defaultRect.height;
|
||||
switch (_dragMode)
|
||||
{
|
||||
case EDragMode.Drag:
|
||||
transform.position = _sourceDragPoint + vector;
|
||||
break;
|
||||
case EDragMode.ScaleX:
|
||||
_uRect.sizeDelta = new Vector2(width + vector.x, height);
|
||||
break;
|
||||
case EDragMode.ScaleY:
|
||||
_uRect.sizeDelta = new Vector2(width, height - vector.y);
|
||||
break;
|
||||
case EDragMode.ScaleXY:
|
||||
_uRect.sizeDelta = new Vector2(width + vector.x, height - vector.y);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
});
|
||||
TriggerAdd(eventTrigger, EventTriggerType.PointerDown, delegate (BaseEventData x)
|
||||
{
|
||||
var pointerEventData2 = x as PointerEventData;
|
||||
_sourceDragPoint = transform.position;
|
||||
_dragBias = pointerEventData2.position;
|
||||
var position = pointerEventData2.position;
|
||||
var position2 = transform.position;
|
||||
var num = position.x - position2.x;
|
||||
var num2 = position.y - position2.y;
|
||||
var rect = _uRect.rect;
|
||||
var flag2 = rect.height - 20f < num2;
|
||||
var flag3 = flag2;
|
||||
if (flag3)
|
||||
{
|
||||
_dragMode = EDragMode.Drag;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag4 = num > rect.width - 20f;
|
||||
var flag5 = -num2 > rect.height - 20f;
|
||||
var flag6 = flag4 && flag5;
|
||||
if (flag6)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleXY;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag7 = flag4;
|
||||
if (flag7)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleX;
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag8 = flag5;
|
||||
if (flag8)
|
||||
{
|
||||
_dragMode = EDragMode.ScaleY;
|
||||
}
|
||||
else
|
||||
{
|
||||
_dragMode = EDragMode.Drag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void BindCloseWindowBtn()
|
||||
{
|
||||
var orAddComponentInChildren = UITool.GetOrAddComponentInChildren<Button>("Btn_Close");
|
||||
var flag = orAddComponentInChildren != null;
|
||||
if (flag)
|
||||
{
|
||||
var component = orAddComponentInChildren.gameObject.GetComponent<Button>();
|
||||
component.onClick.AddListener(delegate
|
||||
{
|
||||
UIManager.SetActive(false);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("没有找到关闭按钮");
|
||||
}
|
||||
}
|
||||
private void BindCloseWindowBtn()
|
||||
{
|
||||
var orAddComponentInChildren = UITool.GetOrAddComponentInChildren<Button>("Btn_Close");
|
||||
var flag = orAddComponentInChildren != null;
|
||||
if (flag)
|
||||
{
|
||||
var component = orAddComponentInChildren.gameObject.GetComponent<Button>();
|
||||
component.onClick.AddListener(delegate
|
||||
{
|
||||
UIManager.SetActive(false);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("没有找到关闭按钮");
|
||||
}
|
||||
}
|
||||
|
||||
private static void TriggerAdd(EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback)
|
||||
{
|
||||
var entry = new EventTrigger.Entry();
|
||||
entry.eventID = eventID;
|
||||
entry.callback.AddListener(callback);
|
||||
trigger.triggers.Add(entry);
|
||||
}
|
||||
private static void TriggerAdd(EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback)
|
||||
{
|
||||
var entry = new EventTrigger.Entry();
|
||||
entry.eventID = eventID;
|
||||
entry.callback.AddListener(callback);
|
||||
trigger.triggers.Add(entry);
|
||||
}
|
||||
|
||||
private Vector2 _dragBias;
|
||||
private Vector2 _dragBias;
|
||||
|
||||
private Vector2 _sourceDragPoint;
|
||||
private Vector2 _sourceDragPoint;
|
||||
|
||||
private RectTransform _uRect;
|
||||
private RectTransform _uRect;
|
||||
|
||||
private EDragMode _dragMode = EDragMode.Drag;
|
||||
private EDragMode _dragMode = EDragMode.Drag;
|
||||
|
||||
private Rect _defaultRect;
|
||||
private Rect _defaultRect;
|
||||
|
||||
private enum EDragMode
|
||||
{
|
||||
Drag,
|
||||
ScaleX,
|
||||
ScaleY,
|
||||
ScaleXY
|
||||
}
|
||||
}
|
||||
private enum EDragMode
|
||||
{
|
||||
Drag,
|
||||
ScaleX,
|
||||
ScaleY,
|
||||
ScaleXY
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user