From ab64006e5ad4f2f11340b9feb5c0dee232bafca5 Mon Sep 17 00:00:00 2001 From: XgC2961 <2961904938@qq.com> Date: Fri, 29 Aug 2025 17:26:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B6=E6=AE=B5=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/ControlScene.unity | 10 ++-- Assets/Scenes/DisplayScene.unity | 34 +++++++------ Assets/Scripts/DisplayServer.cs | 87 +++++++++++++------------------- Assets/Scripts/TouchClient.cs | 5 ++ 4 files changed, 63 insertions(+), 73 deletions(-) diff --git a/Assets/Scenes/ControlScene.unity b/Assets/Scenes/ControlScene.unity index 413db1d..f20d540 100644 --- a/Assets/Scenes/ControlScene.unity +++ b/Assets/Scenes/ControlScene.unity @@ -1036,7 +1036,7 @@ RectTransform: 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: -519} + m_AnchoredPosition: {x: -114, y: -377} m_SizeDelta: {x: 1640.6758, y: 70.5343} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &147885632 @@ -1905,7 +1905,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &255454897 RectTransform: m_ObjectHideFlags: 0 @@ -5970,7 +5970,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &918998978 RectTransform: m_ObjectHideFlags: 0 @@ -8234,7 +8234,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 6, y: 0} m_SizeDelta: {x: 54.2549, y: -14.6958} m_Pivot: {x: 0.5, y: 0.5} @@ -10050,7 +10050,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 10, y: 0} m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Scenes/DisplayScene.unity b/Assets/Scenes/DisplayScene.unity index 0412b0a..17c6ee6 100644 --- a/Assets/Scenes/DisplayScene.unity +++ b/Assets/Scenes/DisplayScene.unity @@ -525,7 +525,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c86ed53e8144b2b4781bab9d7e73c21e, type: 3} m_Name: m_EditorClassIdentifier: - idleState: Idle + defaultAnimName: Idle --- !u!1 &497933936 GameObject: m_ObjectHideFlags: 0 @@ -694,7 +694,7 @@ MonoBehaviour: background: {fileID: 1525531913} pageModels: - pageName: "\u9996\u9875" - model: {fileID: 1900441645} + model: {fileID: 1681616359} - pageName: "PET\u7CFB\u7EDF" model: {fileID: 691699271} - pageName: "SPECT\u7CFB\u7EDF" @@ -862,6 +862,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1507133263} m_Modifications: + - target: {fileID: 1164663479577332284, guid: f75d3e676db2e634e92fedae86563f09, type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 9100000, guid: d24fb50d1b81f3d4fb77b59f298c6391, type: 2} - target: {fileID: 3925048513958328894, guid: f75d3e676db2e634e92fedae86563f09, type: 3} propertyPath: m_Name value: PET @@ -922,7 +926,7 @@ Transform: m_CorrespondingSourceObject: {fileID: 4409941575402610820, guid: f75d3e676db2e634e92fedae86563f09, type: 3} m_PrefabInstance: {fileID: 691699270} m_PrefabAsset: {fileID: 0} ---- !u!114 &691699273 +--- !u!114 &691699274 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -934,7 +938,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c86ed53e8144b2b4781bab9d7e73c21e, type: 3} m_Name: m_EditorClassIdentifier: - idleState: Idle + defaultAnimName: Idle --- !u!1 &705507993 GameObject: m_ObjectHideFlags: 0 @@ -1220,7 +1224,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c86ed53e8144b2b4781bab9d7e73c21e, type: 3} m_Name: m_EditorClassIdentifier: - idleState: Idle + defaultAnimName: Idle --- !u!1 &1151435827 GameObject: m_ObjectHideFlags: 0 @@ -1236,7 +1240,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1151435828 RectTransform: m_ObjectHideFlags: 0 @@ -1461,7 +1465,7 @@ GameObject: m_CorrespondingSourceObject: {fileID: 808788182189126522, guid: 6865c1237a7183346ba17964f39d0609, type: 3} m_PrefabInstance: {fileID: 445643561} m_PrefabAsset: {fileID: 0} ---- !u!114 &1574313331 +--- !u!114 &1574313332 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1473,7 +1477,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c86ed53e8144b2b4781bab9d7e73c21e, type: 3} m_Name: m_EditorClassIdentifier: - idleState: Idle + defaultAnimName: Idle --- !u!1001 &1681616358 PrefabInstance: m_ObjectHideFlags: 0 @@ -1531,6 +1535,11 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 56ad479e7b7393943899010515c51f96, type: 3} +--- !u!1 &1681616359 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4532021034247428024, guid: 56ad479e7b7393943899010515c51f96, type: 3} + m_PrefabInstance: {fileID: 1681616358} + m_PrefabAsset: {fileID: 0} --- !u!1 &1862347561 GameObject: m_ObjectHideFlags: 0 @@ -1568,11 +1577,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: -16.5} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1900441645 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4532021034247428024, guid: 56ad479e7b7393943899010515c51f96, type: 3} - m_PrefabInstance: {fileID: 1681616358} - m_PrefabAsset: {fileID: 0} --- !u!1 &1920062184 GameObject: m_ObjectHideFlags: 0 @@ -1626,7 +1630,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &1961423191 RectTransform: m_ObjectHideFlags: 0 @@ -1727,7 +1731,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c86ed53e8144b2b4781bab9d7e73c21e, type: 3} m_Name: m_EditorClassIdentifier: - idleState: Idle + defaultAnimName: Idle --- !u!1 &2139815134 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/DisplayServer.cs b/Assets/Scripts/DisplayServer.cs index a3bf8f5..f01c91f 100644 --- a/Assets/Scripts/DisplayServer.cs +++ b/Assets/Scripts/DisplayServer.cs @@ -17,7 +17,7 @@ public class DisplayServer : MonoBehaviour public class PageModel { public string pageName; - public GameObject model; + public GameObject model; // 模型上挂载 ModelController } public List pageModels = new List(); @@ -45,7 +45,6 @@ public class DisplayServer : MonoBehaviour { TcpClient client = listener.AcceptTcpClient(); Debug.Log("触摸端已连接!"); - Thread clientThread = new Thread(HandleClientComm); clientThread.Start(client); } @@ -61,56 +60,47 @@ public class DisplayServer : MonoBehaviour while (isRunning) { - try - { - bytesRead = clientStream.Read(message, 0, 4096); - } - catch - { - Debug.Log("触摸端断开连接"); - break; - } + try { bytesRead = clientStream.Read(message, 0, 4096); } + catch { break; } if (bytesRead == 0) break; string data = Encoding.UTF8.GetString(message, 0, bytesRead); - Debug.Log("收到指令: " + data); latestMsg = data; } + + tcpClient.Close(); } private void Update() { - if (!string.IsNullOrEmpty(latestMsg)) - { - if (latestMsg.StartsWith("Page:")) - { - string pageName = latestMsg.Replace("Page:", ""); - ShowPage(pageName); - } - else if (latestMsg.StartsWith("Anim:")) - { - string animName = latestMsg.Replace("Anim:", ""); - PlayAnimation(animName); - } - else if (latestMsg.StartsWith("Progress:")) - { - if (float.TryParse(latestMsg.Replace("Progress:", ""), out float progress)) - { - SetAnimationProgress(progress); - } - } + if (string.IsNullOrEmpty(latestMsg)) return; - latestMsg = ""; + if (latestMsg.StartsWith("Page:")) + { + string pageName = latestMsg.Replace("Page:", ""); + ShowPage(pageName); } + else if (latestMsg.StartsWith("Model:")) // 改成根据模型名播放动画 + { + string modelName = latestMsg.Replace("Model:", ""); + PlayModelAnimation(modelName); + } + else if (latestMsg.StartsWith("Progress:")) + { + if (float.TryParse(latestMsg.Replace("Progress:", ""), out float progress)) + { + SetAnimationProgress(progress); + } + } + + latestMsg = ""; } private void ShowPage(string pageName) { foreach (Transform child in background) - { child.gameObject.SetActive(child.name == pageName); - } currentPage = pageName; @@ -122,37 +112,28 @@ public class DisplayServer : MonoBehaviour pageModel.model.SetActive(isActive); ModelController mc = pageModel.model.GetComponent(); - if (mc != null) - { - mc.ResetAnimation(); - } + if (mc != null) mc.ResetAnimation(); } } - - Debug.Log($"显示端切换页面:{pageName}"); } - private void PlayAnimation(string animName) + private void PlayModelAnimation(string modelName) { - PageModel pageModel = pageModels.Find(p => p.pageName == currentPage); - if (pageModel == null || pageModel.model == null) return; - - ModelController mc = pageModel.model.GetComponent(); - if (mc != null) + PageModel pm = pageModels.Find(p => p.model != null && p.model.name == modelName); + if (pm != null) { - mc.PlayAnimation(animName); + ModelController mc = pm.model.GetComponent(); + if (mc != null) mc.PlayAnimation(); // 播放模型默认动画 } } private void SetAnimationProgress(float progress) { - PageModel pageModel = pageModels.Find(p => p.pageName == currentPage); - if (pageModel == null || pageModel.model == null) return; - - ModelController mc = pageModel.model.GetComponent(); - if (mc != null) + PageModel pm = pageModels.Find(p => p.pageName == currentPage); + if (pm != null && pm.model != null) { - mc.SetAnimationProgress(progress); + ModelController mc = pm.model.GetComponent(); + if (mc != null) mc.SetAnimationProgress(progress); } } diff --git a/Assets/Scripts/TouchClient.cs b/Assets/Scripts/TouchClient.cs index 8f14500..baf1deb 100644 --- a/Assets/Scripts/TouchClient.cs +++ b/Assets/Scripts/TouchClient.cs @@ -76,6 +76,11 @@ public class TouchClient : MonoBehaviour SendMessageToServer("Page:" + pageName); } + public void OnButtonClick_PlayModel(string modelName) + { + SendMessageToServer("Model:" + modelName); + } + public void OnButtonClick_Anim(string animName) { SendMessageToServer("Anim:" + animName);