From f1d865dc819ee4355b3cf178b8beaf7a91ebffc9 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Tue, 11 Mar 2025 13:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Item/Show3DCamera.cs | 27 +++++++++ Assets/Scripts/UI/UIBody3D.cs | 2 +- Assets/Scripts/Xml/XmlParser.cs | 5 +- Doc/Xml配置文档.xml | 94 ++++++++++++++++++++++++++++- 4 files changed, 124 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Item/Show3DCamera.cs b/Assets/Scripts/Item/Show3DCamera.cs index 229c3904..7247a701 100644 --- a/Assets/Scripts/Item/Show3DCamera.cs +++ b/Assets/Scripts/Item/Show3DCamera.cs @@ -72,6 +72,33 @@ public class Show3DCamera : MonoBehaviour + public void ResetCamera(Transform target, RectTransform inputRect = null, bool isRenderTexture = true) + { + if (target == null) + { + Debug.LogError("Target is not assigned!"); + return; + } + + yaw = 0; + pitch = 0; + // ʼλ + this.inputRect = inputRect; + this.targetPos = target.transform.position; + // ʼλ + offset = new Vector3(0, 0, -distance); + + if (isRenderTexture) + { + self.targetTexture = texture; + } + else + { + self.targetTexture = null; + } + UpdateCameraPosition(-1); + } + void Update() { if (targetPos != null && lockMove == false && EventSystem.current.IsPointerOverGameObject() == false) diff --git a/Assets/Scripts/UI/UIBody3D.cs b/Assets/Scripts/UI/UIBody3D.cs index 964e01b1..ba027026 100644 --- a/Assets/Scripts/UI/UIBody3D.cs +++ b/Assets/Scripts/UI/UIBody3D.cs @@ -246,7 +246,7 @@ namespace QFramework.Example public void ResetCamera(float moveTime) { - Show3DCamera.instance.Set(root.transform, distance: 5, isRenderTexture: false, moveTime: moveTime, pitchMin: -80); + Show3DCamera.instance.ResetCamera(root.transform); } protected override void OnShow() diff --git a/Assets/Scripts/Xml/XmlParser.cs b/Assets/Scripts/Xml/XmlParser.cs index 585ab642..1d795f54 100644 --- a/Assets/Scripts/Xml/XmlParser.cs +++ b/Assets/Scripts/Xml/XmlParser.cs @@ -405,9 +405,10 @@ namespace XMLTool Name = bodyElement.Attribute("name")?.Value, Path = bodyElement.Attribute("path")?.Value, Tip = bodyElement.Attribute("tip")?.Value, - Audio = bodyElement.Attribute("audio")?.Value + Audio = bodyElement.Attribute("audio")?.Value, + FocusDistance = bodyElement.Attribute("FocusDistance")?.Value }; - + var isShow = bodyElement.Attribute("isShow"); if (isShow != null) { diff --git a/Doc/Xml配置文档.xml b/Doc/Xml配置文档.xml index adae8340..b8f57467 100644 --- a/Doc/Xml配置文档.xml +++ b/Doc/Xml配置文档.xml @@ -380,4 +380,96 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +