diff --git a/Assets/Scripts/Actions/CameraSwitchAction.cs b/Assets/Scripts/Actions/CameraSwitchAction.cs index a4993937..48f0e77d 100644 --- a/Assets/Scripts/Actions/CameraSwitchAction.cs +++ b/Assets/Scripts/Actions/CameraSwitchAction.cs @@ -63,7 +63,10 @@ namespace QFramework data.normalPos = Utility.GetVector3FromStrArray(datas["normalPos"]); data.normalRot = Utility.GetVector3FromStrArray(datas["normalRot"]); } - + if (datas.ContainsKey("isOn")) + { + data.isOn = datas["isOn"]; + } float.TryParse(datas["nearTime"], out data.nearTime); float.TryParse(datas["normalTime"], out data.normalTime); diff --git a/Assets/Scripts/Editor/SetReadWrite.cs.meta b/Assets/Scripts/Editor/SetReadWrite.cs.meta new file mode 100644 index 00000000..5c098667 --- /dev/null +++ b/Assets/Scripts/Editor/SetReadWrite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1465669937f2bd41bb9445a4ad56e2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Item/DeviceItem.cs b/Assets/Scripts/Item/DeviceItem.cs index 03612200..51687e3e 100644 --- a/Assets/Scripts/Item/DeviceItem.cs +++ b/Assets/Scripts/Item/DeviceItem.cs @@ -46,7 +46,10 @@ public class DeviceItem : MonoBehaviour { bool isActive = true; bool.TryParse(obj[0], out isActive); - gameObject.GetComponent().enabled = isActive; + if (obj.Length == 1 || (obj.Length > 1 && obj[1] == device.Name)) + { + gameObject.GetComponent().enabled = isActive; + } } } diff --git a/Assets/Scripts/UI/UIBtns.cs b/Assets/Scripts/UI/UIBtns.cs index 4b9414ca..61c0e263 100644 --- a/Assets/Scripts/UI/UIBtns.cs +++ b/Assets/Scripts/UI/UIBtns.cs @@ -18,7 +18,6 @@ namespace QFramework.Example { mData = uiData as UIBtnsData ?? new UIBtnsData(); // please add init code here - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -29,6 +28,7 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UIBtnsData ?? new UIBtnsData(); BtnContent.RemoveAllChildren(); foreach (var item in mData.btns) diff --git a/Assets/Scripts/UI/UICameraSwitch.cs b/Assets/Scripts/UI/UICameraSwitch.cs index 4020e826..839b2ac1 100644 --- a/Assets/Scripts/UI/UICameraSwitch.cs +++ b/Assets/Scripts/UI/UICameraSwitch.cs @@ -16,6 +16,7 @@ namespace QFramework.Example public Vector3 normalRot; public float nearTime; public float normalTime; + public string isOn; } public partial class UICameraSwitch : UIPanel @@ -58,14 +59,28 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { mData = uiData as UICameraSwitchData ?? new UICameraSwitchData(); - - if (Near.isOn) + if (string.IsNullOrEmpty(mData.isOn)) { - SetNear(); + if (Near.isOn) + { + SetNear(); + } + if (Far.isOn) + { + SetNormal(); + } } - if (Far.isOn) + else { - SetNormal(); + switch (mData.isOn) + { + case "near": + SetNear(); + break; + case "normal": + SetNormal(); + break; + } } } diff --git a/Assets/Scripts/UI/UIHint.cs b/Assets/Scripts/UI/UIHint.cs index 6a30db99..a504b769 100644 --- a/Assets/Scripts/UI/UIHint.cs +++ b/Assets/Scripts/UI/UIHint.cs @@ -22,7 +22,6 @@ namespace QFramework.Example { mData = uiData as UIHintData ?? new UIHintData(); SetItem(0); - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -32,6 +31,7 @@ namespace QFramework.Example } protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UIHintData ?? new UIHintData(); if (curAction != null) { diff --git a/Assets/Scripts/UI/UIOperationList.cs b/Assets/Scripts/UI/UIOperationList.cs index 12ab9209..82693fb9 100644 --- a/Assets/Scripts/UI/UIOperationList.cs +++ b/Assets/Scripts/UI/UIOperationList.cs @@ -142,7 +142,6 @@ namespace QFramework.Example } protected override void OnClose() { - TypeEventSystem.Global.UnRegister(OnStepChanged); } } } diff --git a/Assets/Scripts/UI/UIPointQuestion.cs b/Assets/Scripts/UI/UIPointQuestion.cs index 8f60f828..6f078693 100644 --- a/Assets/Scripts/UI/UIPointQuestion.cs +++ b/Assets/Scripts/UI/UIPointQuestion.cs @@ -17,7 +17,6 @@ namespace QFramework.Example { mData = uiData as UIPointQuestionData ?? new UIPointQuestionData(); // please add init code here - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -28,6 +27,7 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UIPointQuestionData ?? new UIPointQuestionData(); Content.RemoveAllChildren(); diff --git a/Assets/Scripts/UI/UIResultTip.cs b/Assets/Scripts/UI/UIResultTip.cs index 288574e1..5d685ef9 100644 --- a/Assets/Scripts/UI/UIResultTip.cs +++ b/Assets/Scripts/UI/UIResultTip.cs @@ -20,7 +20,6 @@ namespace QFramework.Example mData = uiData as UIResultTipData ?? new UIResultTipData(); Right.gameObject.SetActive(false); Wrong.gameObject.SetActive(false); - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -30,6 +29,7 @@ namespace QFramework.Example } protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); Right.gameObject.SetActive(false); Wrong.gameObject.SetActive(false); mData = uiData as UIResultTipData ?? new UIResultTipData(); diff --git a/Assets/Scripts/UI/UITextQuestion.cs b/Assets/Scripts/UI/UITextQuestion.cs index 3069230a..ea98985e 100644 --- a/Assets/Scripts/UI/UITextQuestion.cs +++ b/Assets/Scripts/UI/UITextQuestion.cs @@ -34,7 +34,6 @@ namespace QFramework.Example { mData = uiData as UITextQuestionData ?? new UITextQuestionData(); // please add init code here - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -44,6 +43,7 @@ namespace QFramework.Example } protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UITextQuestionData ?? new UITextQuestionData(); Title.text = mData.title; OptionContent.transform.RemoveAllChildren(); diff --git a/Assets/Scripts/UI/UITextTip.cs b/Assets/Scripts/UI/UITextTip.cs index 154c5dec..6b66d0cc 100644 --- a/Assets/Scripts/UI/UITextTip.cs +++ b/Assets/Scripts/UI/UITextTip.cs @@ -22,8 +22,6 @@ namespace QFramework.Example { mData = uiData as UITextTipData ?? new UITextTipData(); - TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenGameObjectDestroyed(this); - TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -34,6 +32,7 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UITextTipData ?? new UITextTipData(); Des.text = Regex.Replace(mData.text, @"\\n", "\n"); BtnContent.RemoveAllChildren(); diff --git a/Assets/Scripts/UI/UITipWindow.cs b/Assets/Scripts/UI/UITipWindow.cs index 0ed8613c..bebe56dc 100644 --- a/Assets/Scripts/UI/UITipWindow.cs +++ b/Assets/Scripts/UI/UITipWindow.cs @@ -27,7 +27,6 @@ namespace QFramework.Example mData = uiData as UITipWindowData ?? new UITipWindowData(); // please add init code here - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -39,6 +38,7 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { mData = uiData as UITipWindowData ?? new UITipWindowData(); + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); Label.text = mData.txt; BtnContent.RemoveAllChildren(); if (mData != null) diff --git a/Assets/Scripts/UI/UITools.cs b/Assets/Scripts/UI/UITools.cs index c35ce3cb..6b77750e 100644 --- a/Assets/Scripts/UI/UITools.cs +++ b/Assets/Scripts/UI/UITools.cs @@ -30,7 +30,6 @@ namespace QFramework.Example { mData = uiData as UIToolsData ?? new UIToolsData(); // please add init code here - TypeEventSystem.Global.Register(OnStepChanged); TypeEventSystem.Global.Register(OnModuleQuit).UnRegisterWhenGameObjectDestroyed(gameObject); } @@ -41,6 +40,7 @@ namespace QFramework.Example protected override void OnOpen(IUIData uiData = null) { + TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mResLoader = ResLoader.Allocate(); mData = uiData as UIToolsData ?? new UIToolsData(); if (string.IsNullOrEmpty(mData.answer) == false) diff --git a/Assets/Scripts/Xml/XmlParser.cs b/Assets/Scripts/Xml/XmlParser.cs index b894aabf..c72821f9 100644 --- a/Assets/Scripts/Xml/XmlParser.cs +++ b/Assets/Scripts/Xml/XmlParser.cs @@ -666,6 +666,11 @@ namespace XMLTool { act.args.Add("normalTime", "0"); } + XAttribute isOn = action.Attribute("isOn"); + if (isOn != null) + { + act.args.Add("isOn", isOn.Value); + } newAction = act; } break; diff --git a/Doc/Xml配置文档.xml b/Doc/Xml配置文档.xml index 18d26c7f..9404bb72 100644 --- a/Doc/Xml配置文档.xml +++ b/Doc/Xml配置文档.xml @@ -51,8 +51,9 @@ - + @@ -127,7 +128,7 @@