From f5846b09192da9b6470df1c9e648ad66fec11ab6 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Thu, 2 Jan 2025 14:45:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95objclick=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8F=8D=E5=90=91=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Conditions/ObjClickCondition.cs | 15 ++++++++++++++- Assets/Scripts/Xml/XmlParser.cs | 5 +++++ Doc/Xml配置文档.xml | 4 ++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Conditions/ObjClickCondition.cs b/Assets/Scripts/Conditions/ObjClickCondition.cs index 2bcfdad4..3dd78de4 100644 --- a/Assets/Scripts/Conditions/ObjClickCondition.cs +++ b/Assets/Scripts/Conditions/ObjClickCondition.cs @@ -16,6 +16,7 @@ namespace QFramework public GameObject obj = null; string path; string deviceName; + bool isRight; public static ObjClickCondition Allocate(string path, Dictionary datas) { var conditionAction = mSimpleObjectPool.Allocate(); @@ -24,6 +25,11 @@ namespace QFramework conditionAction.Reset(); conditionAction.path = path; conditionAction.deviceName = datas.ContainsKey("deviceName") ? datas["deviceName"] : null; + conditionAction.isRight = true; + if (datas.ContainsKey("isRight")) + { + bool.TryParse(datas["isRight"], out conditionAction.isRight); + } return conditionAction; } public bool Check() @@ -46,7 +52,14 @@ namespace QFramework RaycastHit hit; if (Physics.Raycast(ray, out hit)) { - return obj == hit.collider.gameObject; + if (isRight) + { + return obj == hit.collider.gameObject; + } + else + { + return obj != hit.collider.gameObject; + } } } return false; diff --git a/Assets/Scripts/Xml/XmlParser.cs b/Assets/Scripts/Xml/XmlParser.cs index d4f57513..86842e1d 100644 --- a/Assets/Scripts/Xml/XmlParser.cs +++ b/Assets/Scripts/Xml/XmlParser.cs @@ -1049,6 +1049,11 @@ namespace XMLTool { act.args.Add("deviceName", deviceName.Value); } + XAttribute isRight = action.Attribute("isRight"); + if (isRight != null) + { + act.args.Add("isRight", isRight.Value); + } newAction = act; break; default: diff --git a/Doc/Xml配置文档.xml b/Doc/Xml配置文档.xml index 8844d63e..1accb015 100644 --- a/Doc/Xml配置文档.xml +++ b/Doc/Xml配置文档.xml @@ -79,8 +79,8 @@ - - + +