diff --git a/Assets/Scripts/Actions/ActionHelper.cs b/Assets/Scripts/Actions/ActionHelper.cs index 77822f6e..6f4d1e3f 100644 --- a/Assets/Scripts/Actions/ActionHelper.cs +++ b/Assets/Scripts/Actions/ActionHelper.cs @@ -3,6 +3,7 @@ using QFramework.Example; using System; using System.Collections.Generic; using UnityEngine; +using XMLTool; public class ActionHelper @@ -118,7 +119,8 @@ public class ActionHelper case "PointQuestion": return PointQuestionAction.Allocate(act.Value); case "Point3DQuestion": - return Point3DQuestionAction.Allocate(act.Value); + var point3d = (Point3DQuestion)act; + return Point3DQuestionAction.Allocate(point3d.datas); case "TextQuestion": { var strAction = (XMLTool.DictionaryAction)act; diff --git a/Assets/Scripts/Actions/Point3DQuestionAction.cs b/Assets/Scripts/Actions/Point3DQuestionAction.cs index 4c0da015..9b9df60c 100644 --- a/Assets/Scripts/Actions/Point3DQuestionAction.cs +++ b/Assets/Scripts/Actions/Point3DQuestionAction.cs @@ -41,6 +41,7 @@ namespace QFramework GameObject obj = GameObject.Instantiate(Resources.Load("PointQuestion/Point3D")) as GameObject; obj.GetOrAddComponent().Init(item); } + this.Finish(); } @@ -64,6 +65,8 @@ namespace QFramework { if (!Deinited) { + datas.Clear(); + datas = null; OnFinished = null; Deinited = true; mPool.Recycle(this); diff --git a/Assets/Scripts/Conditions/ObjClickCondition.cs b/Assets/Scripts/Conditions/ObjClickCondition.cs index 68754b2c..91d073b8 100644 --- a/Assets/Scripts/Conditions/ObjClickCondition.cs +++ b/Assets/Scripts/Conditions/ObjClickCondition.cs @@ -43,9 +43,13 @@ namespace QFramework else { obj = DeviceController.Instance.GetDeviceObj(deviceName); + if (obj == null) + { + Debug.LogError($"ûҵ path:{path} deviceName:{deviceName}"); + } } } - if (obj != null && Input.GetMouseButtonUp(0) && EventSystem.current.IsPointerOverGameObject() == false) + if (Input.GetMouseButtonUp(0) && EventSystem.current.IsPointerOverGameObject() == false) { Vector3 mousePos = Input.mousePosition; Ray ray = Camera.main.ScreenPointToRay(mousePos); @@ -62,6 +66,8 @@ namespace QFramework } } } + + return false; } public bool Paused { get; set; } diff --git a/Assets/Scripts/Item/Point3DItem.cs b/Assets/Scripts/Item/Point3DItem.cs index e0ec7698..49555550 100644 --- a/Assets/Scripts/Item/Point3DItem.cs +++ b/Assets/Scripts/Item/Point3DItem.cs @@ -4,7 +4,6 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using XMLTool; -using static UnityEditor.Progress; public class Point3DItem : MonoBehaviour { @@ -15,6 +14,10 @@ public class Point3DItem : MonoBehaviour public void Init(Point3DQuestion.Data data) { this.data = data; + if (string.IsNullOrEmpty(data.name) == false) + { + gameObject.name = data.name; + } if (string.IsNullOrEmpty(data.deviceName)) { gameObject.transform.position = data.pos; @@ -25,6 +28,11 @@ public class Point3DItem : MonoBehaviour { GameObject device = DeviceController.Instance.GetDeviceObj(data.deviceName); gameObject.transform.parent = device.transform; + gameObject.transform.localPosition = Vector3.zero; + gameObject.transform.localEulerAngles = Vector3.zero; + gameObject.transform.localScale = Vector3.one; + + } rotSpeed = data.rotateSpeed; TypeEventSystem.Global.Register(OnObjDestroy).UnRegisterWhenGameObjectDestroyed(gameObject); diff --git a/Assets/Scripts/Xml/XmlParser.cs b/Assets/Scripts/Xml/XmlParser.cs index 7bdf0a90..6350d71e 100644 --- a/Assets/Scripts/Xml/XmlParser.cs +++ b/Assets/Scripts/Xml/XmlParser.cs @@ -1092,9 +1092,18 @@ namespace XMLTool { Point3DQuestion.Data data = new Point3DQuestion.Data(); data.name = item.Attribute("name")?.Value; - data.pos = Utility.GetVector3FromStrArray(item.Attribute("position")?.Value); - data.rotate = Utility.GetVector3FromStrArray(item.Attribute("rotate")?.Value); - data.scale = Utility.GetVector3FromStrArray(item.Attribute("scale")?.Value); + XAttribute atr = item.Attribute("deviceName"); + if (atr!=null) + { + data.deviceName = item.Attribute("deviceName").Value; + } + else + { + data.pos = Utility.GetVector3FromStrArray(item.Attribute("position")?.Value); + data.rotate = Utility.GetVector3FromStrArray(item.Attribute("rotate")?.Value); + data.scale = Utility.GetVector3FromStrArray(item.Attribute("scale")?.Value); + } + float.TryParse(item.Attribute("rotateSpeed")?.Value, out data.rotateSpeed); data.clickEvent = item.Attribute("clickEvent")?.Value; act.datas.Add(data); } diff --git a/Doc/Xml配置文档.xml b/Doc/Xml配置文档.xml index 31404488..3d12cf92 100644 --- a/Doc/Xml配置文档.xml +++ b/Doc/Xml配置文档.xml @@ -34,6 +34,23 @@ + + + + + + + + + + + + @@ -156,8 +175,8 @@ 模块1 -这里是实训描述内容..... -巴拉巴拉.... + 这里是实训描述内容..... + 巴拉巴拉.... 组织钳