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/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/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 701cbb8d..ff8c6aaf 100644 --- a/Doc/Xml配置文档.xml +++ b/Doc/Xml配置文档.xml @@ -51,8 +51,9 @@ - +