Merge remote-tracking branch 'origin/NewMaster' into AnHui_BaoShi

This commit is contained in:
shenjianxing 2025-04-28 10:29:13 +08:00
commit b1c2e578b6
3 changed files with 94 additions and 20 deletions

View File

@ -269,7 +269,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &8333043509333940129
RectTransform:
m_ObjectHideFlags: 0
@ -454,8 +454,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 336.29443, y: 0}
m_SizeDelta: {x: 672.5889, y: 0}
m_AnchoredPosition: {x: 336.29443, y: -54.999996}
m_SizeDelta: {x: 672.5889, y: -110}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2989934290346154672
CanvasRenderer:
@ -726,7 +726,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0.00013167458}
m_AnchoredPosition: {x: 0, y: 0.0008044916}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1181747651547168674
@ -882,8 +882,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -364.56055, y: 0}
m_SizeDelta: {x: 730, y: 0}
m_AnchoredPosition: {x: -364.56055, y: -55}
m_SizeDelta: {x: 730, y: -110}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8240270928057047746
CanvasRenderer:
@ -936,8 +936,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Content: {fileID: 6690386520824484871}
m_Horizontal: 1
m_Vertical: 1
m_Horizontal: 0
m_Vertical: 0
m_MovementType: 1
m_Elasticity: 0.1
m_Inertia: 1
@ -1240,7 +1240,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0.00013167458}
m_AnchoredPosition: {x: 0, y: 0.0008044916}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0, y: 1}
--- !u!114 &3568317990091449983

View File

@ -29,6 +29,10 @@ namespace QFramework.Example
public partial class UIImageSelectMap : UIPanel
{
ResLoader loader;
GameObject moveObj;
GameObject enterRight;
GameObject leftDragObj;
Dictionary<GameObject, UIImageSelectMapData.OptionItem> itemDatas = new Dictionary<GameObject, UIImageSelectMapData.OptionItem>();
protected override void OnInit(IUIData uiData = null)
{
mData = uiData as UIImageSelectMapData ?? new UIImageSelectMapData();
@ -42,6 +46,7 @@ namespace QFramework.Example
LeftContent.RemoveAllChildren();
RightContent.RemoveAllChildren();
itemDatas.Clear();
foreach (var item in mData.items)
{
var leftObj = GameObject.Instantiate(LeftItem, LeftContent);
@ -54,12 +59,18 @@ namespace QFramework.Example
}
});
leftObj.OnDragEvent(leftOnDrag);
leftObj.OnBeginDragEvent(LeftOnBeginDrag);
leftObj.OnDragEvent(LeftOnDrag);
leftObj.OnEndDragEvent(LeftOnEndDrag);
var rightObj = GameObject.Instantiate(RightItem, RightContent);
rightObj.transform.localPosition = item.pos;
rightObj.name = item.pic;
rightObj.rectTransform.anchoredPosition = item.pos;
rightObj.rectTransform.sizeDelta = item.size;
rightObj.OnPointerEnterEvent(RightOnEnter);
rightObj.OnPointerExitEvent(RightOnExit);
itemDatas.Add(leftObj.gameObject, item);
}
@ -80,11 +91,58 @@ namespace QFramework.Example
}
private void leftOnDrag(PointerEventData data)
private void RightOnExit(PointerEventData data)
{
data.selectedObject.transform.position = Input.mousePosition;
enterRight = null;
}
private void RightOnEnter(PointerEventData data)
{
enterRight = data.pointerEnter.gameObject;
}
private void LeftOnBeginDrag(PointerEventData data)
{
leftDragObj = data.pointerDrag;
moveObj = GameObject.Instantiate(LeftItem.gameObject, gameObject.transform);
moveObj.GetComponent<Image>().raycastTarget = false;
}
private void LeftOnEndDrag(PointerEventData data)
{
if (enterRight)
{
if (enterRight.name == itemDatas[leftDragObj].pic)
{
Debug.LogError("ÕýÈ·");
enterRight.GetComponent<Image>().color = Color.green;
}
else
{
Debug.LogError("´íÎó");
enterRight.GetComponent<Image>().color = Color.red;
}
moveObj.transform.parent = enterRight.transform;
moveObj.transform.localPosition = Vector3.zero;
}
else
{
GameObject.Destroy(moveObj);
moveObj = null;
}
leftDragObj = null;
}
private void LeftOnDrag(PointerEventData data)
{
//data.pointerDrag.transform.position = Input.mousePosition;
if (moveObj)
{
moveObj.transform.position = Input.mousePosition;
}
}
protected override void OnShow()
{
}

View File

@ -53,13 +53,17 @@ namespace QFramework.Example
foreach (var item in mData.inputs)
{
GameObject input = GameObject.Instantiate(InputItem.gameObject, InputContent);
input.name = item.name;
input.transform.Find("Name").GetComponent<TextMeshProUGUI>().text = item.name;
var inputField = input.transform.Find("Input").GetComponent<TMP_InputField>();
inputField.onEndEdit.AddListener(value =>
{
float v = 0;
float.TryParse(value, out v);
VarController.Instance.Set(item.var, v);
if (string.IsNullOrEmpty(item.var) == false)
{
float v = 0;
float.TryParse(value, out v);
VarController.Instance.Set(item.var, v);
}
});
}
@ -125,12 +129,24 @@ namespace QFramework.Example
foreach (var item in mData.inputs)
{
var list = item.answer.Split('|').ToList();
if (list.Contains(VarController.Instance.Get(item.var).ToString())==false)
if (string.IsNullOrEmpty(item.var))
{
return false;
Transform trans = InputContent.transform.Find(item.name);
string inputStr = trans.Find("Input").GetComponent<TextMeshProUGUI>().text;
if (list.Contains(inputStr))
{
return true;
}
}
else
{
if (list.Contains(VarController.Instance.Get(item.var).ToString()))
{
return true;
}
}
}
return true;
return false;
}
protected override void OnShow()