From 339c287691299f53f7a6b67b830a51fd8e0bfd3f Mon Sep 17 00:00:00 2001 From: Lihao7788 <2470304407@qq.com> Date: Tue, 27 May 2025 11:56:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=A9=BA=E8=A1=8C=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=82=B9=E5=87=BB=EF=BC=8C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E6=8F=90=E7=A4=BA=E9=9F=B3=E9=A2=91=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Art/UIPrefab/UIGuideTip.prefab | 2 +- ...数学)立体几何体认知与计算脚本(2).xlsx.meta | 2 +- .../(数学)立体几何体认知与计算脚本(2).xlsx | Bin 960132 -> 960138 bytes .../ActionKit/Scripts/Utility/Utility.cs | 38 ++++++ Assets/Scenes/ExamScenes/01_JiaoXue.unity | 32 ++--- Assets/Scripts/Actions/GuideTipAction.cs | 5 +- Assets/Scripts/UIGuidTip/UIGuideTip.cs | 80 +++++++++++-- Assets/Scripts/Xml/XmlParser.cs | 14 ++- Data/Xml/01_JiaoXue.xml | 113 ++++++++++-------- 9 files changed, 199 insertions(+), 87 deletions(-) diff --git a/Assets/Art/UIPrefab/UIGuideTip.prefab b/Assets/Art/UIPrefab/UIGuideTip.prefab index e3f09a58..fdb3b02a 100644 --- a/Assets/Art/UIPrefab/UIGuideTip.prefab +++ b/Assets/Art/UIPrefab/UIGuideTip.prefab @@ -71,7 +71,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1177232684554755630 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Projects/~$(数学)立体几何体认知与计算脚本(2).xlsx.meta b/Assets/Projects/~$(数学)立体几何体认知与计算脚本(2).xlsx.meta index e459ec1d..309f558a 100644 --- a/Assets/Projects/~$(数学)立体几何体认知与计算脚本(2).xlsx.meta +++ b/Assets/Projects/~$(数学)立体几何体认知与计算脚本(2).xlsx.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 05b7496d94e7d684a8bf1c3320f42908 +guid: df2e785befb47a243b3607ae7a6e5508 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Projects/(数学)立体几何体认知与计算脚本(2).xlsx b/Assets/Projects/(数学)立体几何体认知与计算脚本(2).xlsx index d1751bcdc2fdf59cb0e42d0917b05d18b424dc30..3712b72a6668f8a7d6c6edc10cb983b1632c3f89 100644 GIT binary patch delta 9199 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 delta 9184 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 cj*=SS&W8x#vWorr-zgtLO<4Z{0 + /// 去除字符串中的空格和空行 + /// + /// 输入字符串 + /// 是否移除所有空格(包括字符串内部的空格) + /// 处理后的字符串 + /// + //// 处理提示文本,保留内部空格但移除空行 + //string cleanTipText = Utility.RemoveSpacesAndEmptyLines(mData.tiptext); + //// 处理音频名称,移除所有空格 + //string cleanTipAudio = Utility.RemoveSpacesAndEmptyLines(mData.tipaudio, true); + public static string RemoveSpacesAndEmptyLines(string input, bool removeAllSpaces = false) + { + if (string.IsNullOrEmpty(input)) + return input; + // 分割字符串为行 + string[] lines = input.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); + + StringBuilder result = new StringBuilder(); + + foreach (string line in lines) + { + string trimmedLine = line.Trim(); + + if (string.IsNullOrEmpty(trimmedLine)) + continue; // 跳过空行 + + // 根据参数决定是否移除所有空格 + if (removeAllSpaces) + { + trimmedLine = trimmedLine.Replace(" ", ""); + } + + result.AppendLine(trimmedLine); + } + + return result.ToString().TrimEnd(); // 移除末尾的换行符 + } } \ No newline at end of file diff --git a/Assets/Scenes/ExamScenes/01_JiaoXue.unity b/Assets/Scenes/ExamScenes/01_JiaoXue.unity index 94911787..e88d1c32 100644 --- a/Assets/Scenes/ExamScenes/01_JiaoXue.unity +++ b/Assets/Scenes/ExamScenes/01_JiaoXue.unity @@ -657,7 +657,7 @@ Transform: m_GameObject: {fileID: 240304286} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.088, y: -0.011, z: 0.111} + m_LocalPosition: {x: -0.088, y: 0, z: 0.111} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -670,7 +670,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 240304286} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -740,7 +740,7 @@ Transform: m_GameObject: {fileID: 248517710} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.192, y: 0.32, z: 0.111} + m_LocalPosition: {x: -0.2, y: 0.32, z: 0.111} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -753,7 +753,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 248517710} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -841,7 +841,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 261523058} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -1736,7 +1736,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -3568217860067444917, guid: 377e2d7235d2ffd4684c67b1127d172f, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: -3568217860067444917, guid: 377e2d7235d2ffd4684c67b1127d172f, type: 3} propertyPath: m_StaticEditorFlags @@ -1828,7 +1828,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6047383785361520804, guid: 377e2d7235d2ffd4684c67b1127d172f, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6047383785361520804, guid: 377e2d7235d2ffd4684c67b1127d172f, type: 3} propertyPath: m_StaticEditorFlags @@ -2933,7 +2933,7 @@ Transform: m_GameObject: {fileID: 1020759834} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.009, y: 0.583, z: 0.2107} + m_LocalPosition: {x: 0.0007106997, y: 0.59896326, z: 0.20234376} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2946,7 +2946,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1020759834} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -3174,7 +3174,7 @@ Transform: m_GameObject: {fileID: 1032994694} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.009, y: 0.591, z: 0.109} + m_LocalPosition: {x: -0.0022, y: 0.5972, z: 0.109} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -3187,7 +3187,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1032994694} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -4323,7 +4323,7 @@ Transform: m_GameObject: {fileID: 1434451487} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.106, y: 0.583, z: 0.111} + m_LocalPosition: {x: -0.106, y: 0.6034, z: 0.111} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -4336,7 +4336,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434451487} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -5715,7 +5715,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1822372371} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 @@ -5911,7 +5911,7 @@ Transform: m_GameObject: {fileID: 1910722536} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.007, y: 0.32, z: 0.205} + m_LocalPosition: {x: -0.0015, y: 0.32, z: 0.1981} m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 m_Children: [] @@ -5924,7 +5924,7 @@ MeshRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1910722536} - m_Enabled: 0 + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 diff --git a/Assets/Scripts/Actions/GuideTipAction.cs b/Assets/Scripts/Actions/GuideTipAction.cs index 0de6bb14..daf9c866 100644 --- a/Assets/Scripts/Actions/GuideTipAction.cs +++ b/Assets/Scripts/Actions/GuideTipAction.cs @@ -63,7 +63,7 @@ namespace QFramework public void OnFinish() { - Debug.Log("Action OnFinish???"); + // Debug.Log("Action OnFinish???"); } public void OnStart() @@ -74,7 +74,8 @@ namespace QFramework data.showName = datas.ContainsKey("showName") ? datas["showName"] : string.Empty; data.offestPos= datas.ContainsKey("offSet") ? datas["offSet"] : string.Empty; //Ӹť ʾͬʾĹܡ - data.offestPos = datas.ContainsKey("tiptextAudio") ? datas["tiptextAudio"] : string.Empty; + data.tiptext = datas.ContainsKey("tiptext") ? datas["tiptext"] : string.Empty; + data.tipaudio = datas.ContainsKey("tipaudio") ? datas["tipaudio"] : string.Empty; UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.Common).ToAction().StartGlobal(() => { diff --git a/Assets/Scripts/UIGuidTip/UIGuideTip.cs b/Assets/Scripts/UIGuidTip/UIGuideTip.cs index edc25de9..073d28c9 100644 --- a/Assets/Scripts/UIGuidTip/UIGuideTip.cs +++ b/Assets/Scripts/UIGuidTip/UIGuideTip.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using static UnityEngine.GraphicsBuffer; using UnityEngine.Assertions; +using static System.Net.Mime.MediaTypeNames; namespace QFramework.Example { @@ -20,8 +21,9 @@ namespace QFramework.Example public string offestPos; - public string tiptextAudio; - + public string tiptext; + public string tipaudio; + } public partial class UIGuideTip : UIPanel @@ -76,7 +78,8 @@ namespace QFramework.Example Debug.Log(mData); List Objs = mData.targets.Split(',')?.ToList(); List ShowTexts = mData.showName.Split(',')?.ToList(); - List textTip =mData.tiptextAudio.Split(',')?.ToList(); + List Tip = mData.tiptext.Split(',')?.ToList(); + List audio = mData.tipaudio.Split(',')?.ToList(); if (String.IsNullOrEmpty(mData.offestPos) == false) { @@ -85,7 +88,7 @@ namespace QFramework.Example for (int i = 0; i < TipOffects.Count; i++) { Vector3 TipOffect = Utility.GetVector3FromStrArray(TipOffects[i]); - Debug.Log(TipOffect + "??????????"); + // Debug.Log(TipOffect + "??????????"); TipOffectList.Add(TipOffect); } } @@ -103,11 +106,15 @@ namespace QFramework.Example TipItemList.Add(tipItemObj); tipItemObj.name = Objs[i]; GameObject target = GameObject.Find(Objs[i].ToString()); - if (target==null) + if (target == null) { Debug.Log("쳣ûҵ"); } - tipItemObj.GetComponentInChildren().text = ShowTexts[i]; + //Tip + tipItemObj.GetComponentInChildren().text = ShowTexts[i]; + + + UpdatePos( target, GetComponentInParent(), @@ -119,6 +126,55 @@ namespace QFramework.Example ); } + if (Tip.Count != 0 || audio.Count != 0) + { + // бСȣȷȫΧ + int minListCount = Math.Min(Tip.Count, audio.Count); + int buttonCount = TipItemList.Count; + + for (int i = 0; i < buttonCount; i++) + { + var tipButton = TipItemList[i].transform.Find("tip").GetComponent