diff --git a/SXElectricityInformationAcquisition/Assembly-CSharp.csproj b/SXElectricityInformationAcquisition/Assembly-CSharp.csproj index 5fa77af0..dfd498a4 100644 --- a/SXElectricityInformationAcquisition/Assembly-CSharp.csproj +++ b/SXElectricityInformationAcquisition/Assembly-CSharp.csproj @@ -47,6 +47,7 @@ + @@ -215,6 +216,7 @@ + diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/Dto.meta b/SXElectricityInformationAcquisition/Assets/Scripts/Dto.meta new file mode 100644 index 00000000..f46aad7c --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/Dto.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e8fccbddd2724242ac0ddbe6842b4e62 +timeCreated: 1718169397 \ No newline at end of file diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs b/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs new file mode 100644 index 00000000..8703ebaa --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; + +namespace DefaultNamespace.Dto +{ + public class ActionData + { + public string Description { get; set; } + public int Score { get; set; } + public List TargetObjects { get; set; } + } + + public class StepData + { + public string StepDescription { get; set; } + public int Score { get; set; } + public List Actions { get; set; } + } + + public class StepsContainer + { + public List Steps { get; set; } + } +} \ No newline at end of file diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs.meta b/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs.meta new file mode 100644 index 00000000..e5898c83 --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/Dto/StepData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bd785483722c49d1ab4f549d9467d59b +timeCreated: 1718169406 \ No newline at end of file diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs index 76e0d882..a305a16d 100644 --- a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs +++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs @@ -1,8 +1,10 @@ using System; using System.Collections; using System.Collections.Generic; +using DefaultNamespace.Dto; using DG.Tweening; using MotionFramework; +using Newtonsoft.Json; using UnityEngine; namespace DefaultNamespace.ProcessMode @@ -19,12 +21,51 @@ namespace DefaultNamespace.ProcessMode yield return new WaitForSeconds(1); - processManager.AddProcess("Teaching"); + + string json = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/DataConfig/StepData.json"); + StepsContainer stepsContainer = JsonConvert.DeserializeObject(json); - List actions = CreateStepActions(); - AnimationStep step = new AnimationStep($"描述步骤", 100, actions); - processManager.AddStepToProcess("Teaching", step); + + foreach (var stepData in stepsContainer.Steps) + { + List actions = new List(); + + foreach (var actionData in stepData.Actions) + { + List targetObjects = new List(); + foreach (var objectName in actionData.TargetObjects) + { + GameObject obj = GameObject.Find(objectName); + if (obj != null) + { + targetObjects.Add(obj); + } + else + { + Debug.LogError($"Object not found: {objectName}"); + } + } + + Action action = () => { Debug.Log(actionData.Description); }; + actions.Add(new ActionWithDescription(targetObjects, action, actionData.Description)); + } + + AnimationStep step = new AnimationStep(stepData.StepDescription, stepData.Score, actions); + processManager.AddStepToProcess("Teaching", step); + } + + + + + + + // + // processManager.AddProcess("Teaching"); + // + // List actions = CreateStepActions(); + // AnimationStep step = new AnimationStep($"描述步骤", 100, actions); + // processManager.AddStepToProcess("Teaching", step); // List actions1 = CreateStepActions1(); diff --git a/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json b/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json new file mode 100644 index 00000000..48eaa805 --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json @@ -0,0 +1,46 @@ +{ + "steps": [ + { + "stepDescription": "步骤 1 描述", + "score": 100, + "actions": [ + { + "description": "动作 1 的描述", + "score": 50, + "targetObjects": [ + "变电箱_门", + "插座" + ] + }, + { + "description": "动作 2 的描述", + "score": 50, + "targetObjects": [ + "插座", + "变电箱_门" + ] + } + ] + }, + { + "stepDescription": "步骤 2 描述", + "score": 100, + "actions": [ + { + "description": "动作 1 的描述", + "score": 50, + "targetObjects": [ + "插座" + ] + }, + { + "description": "动作 2 的描述", + "score": 50, + "targetObjects": [ + "变电箱_门" + ] + } + ] + } + ] +} diff --git a/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json.meta b/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json.meta new file mode 100644 index 00000000..db66ea01 --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/StreamingAssets/DataConfig/StepData.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d81c44f672f82c1459eb8be7cce474c4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: