diff --git a/SXElectricityInformationAcquisition/Assembly-CSharp.csproj b/SXElectricityInformationAcquisition/Assembly-CSharp.csproj
index 4e776b20..5fa77af0 100644
--- a/SXElectricityInformationAcquisition/Assembly-CSharp.csproj
+++ b/SXElectricityInformationAcquisition/Assembly-CSharp.csproj
@@ -45,12 +45,14 @@
+
+
@@ -65,6 +67,7 @@
+
@@ -109,6 +112,7 @@
+
@@ -162,8 +166,10 @@
+
+
@@ -174,6 +180,7 @@
+
diff --git a/SXElectricityInformationAcquisition/Assets/Editor/ScriptDescriptionEditor.cs b/SXElectricityInformationAcquisition/Assets/Editor/ScriptDescriptionEditor.cs
index 6c268ad8..a5a3ef7f 100644
--- a/SXElectricityInformationAcquisition/Assets/Editor/ScriptDescriptionEditor.cs
+++ b/SXElectricityInformationAcquisition/Assets/Editor/ScriptDescriptionEditor.cs
@@ -6,6 +6,9 @@ public class ScriptDescriptionEditor : Editor
{
private GUIStyle descriptionStyle;
+
+
+
private void OnEnable()
{
descriptionStyle = new GUIStyle(EditorStyles.label)
diff --git a/SXElectricityInformationAcquisition/Assets/Framework/GameLauncher.cs b/SXElectricityInformationAcquisition/Assets/Framework/GameLauncher.cs
index a09e7d95..1566c126 100644
--- a/SXElectricityInformationAcquisition/Assets/Framework/GameLauncher.cs
+++ b/SXElectricityInformationAcquisition/Assets/Framework/GameLauncher.cs
@@ -2,6 +2,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using DefaultNamespace;
+using DefaultNamespace.ProcessMode;
using Framework.Scripts.Runtime.Engine.Engine.Camera;
using UnityEngine;
@@ -64,6 +65,10 @@ public class GameLauncher : MonoBehaviour
MotionEngine.CreateModule();
//数据配置文件
MotionEngine.CreateModule();
+
+ //流程管理器
+ MotionEngine.CreateModule();
+
}
private void HandleMotionFrameworkLog(ELogLevel logLevel, string log)
diff --git a/SXElectricityInformationAcquisition/Assets/Model/鐢电嚎鏉/Mat/缁濈紭鑳跺甫缁戠嚎p1.mat b/SXElectricityInformationAcquisition/Assets/Model/鐢电嚎鏉/Mat/缁濈紭鑳跺甫缁戠嚎p1.mat
index 2fa1692f..50c8efb9 100644
--- a/SXElectricityInformationAcquisition/Assets/Model/鐢电嚎鏉/Mat/缁濈紭鑳跺甫缁戠嚎p1.mat
+++ b/SXElectricityInformationAcquisition/Assets/Model/鐢电嚎鏉/Mat/缁濈紭鑳跺甫缁戠嚎p1.mat
@@ -114,12 +114,12 @@ Material:
- _UVSec: 0
- _ZWrite: 1
- __dirty: 0
- - _step_p1: 1
- - _step_p2: 1
- - _step_p3: 1
- - _step_p4: 1
- - _step_p5: 1
- - _step_p6: 1
+ - _step_p1: 0
+ - _step_p2: 0
+ - _step_p3: 0
+ - _step_p4: 0
+ - _step_p5: 0
+ - _step_p6: 0
m_Colors:
- _BaseCol: {r: 0.23429155, g: 0.28497556, b: 0.3679245, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
diff --git a/SXElectricityInformationAcquisition/Assets/Scenes/鐜板満 _Test.unity b/SXElectricityInformationAcquisition/Assets/Scenes/鐜板満 _Test.unity
index 71626596..4aea1a28 100644
--- a/SXElectricityInformationAcquisition/Assets/Scenes/鐜板満 _Test.unity
+++ b/SXElectricityInformationAcquisition/Assets/Scenes/鐜板満 _Test.unity
@@ -20720,6 +20720,63 @@ Transform:
m_Children: []
m_Father: {fileID: 1886732940}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1199227227
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1091812145067508994, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6026879024415736155, guid: fa12b84946083d14cb4447029910be28, type: 3}
+ propertyPath: m_Name
+ value: APP
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: fa12b84946083d14cb4447029910be28, type: 3}
--- !u!1 &1203342266
GameObject:
m_ObjectHideFlags: 0
@@ -26534,6 +26591,64 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1513575210}
m_CullTransparentMesh: 1
+--- !u!1 &1516723166
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1516723168}
+ - component: {fileID: 1516723167}
+ - component: {fileID: 1516723169}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1516723167
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1516723166}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 51f73ee94f284a86b677a6bc74544094, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1516723168
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1516723166}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 303.8186, y: 1.9446667, z: 164.25206}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1516723169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1516723166}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 63b7e72fa2d34c0ca56c938039f733e2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ toolsPackScene: 1
--- !u!1 &1521115505
GameObject:
m_ObjectHideFlags: 0
@@ -28056,74 +28171,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1588077158}
m_CullTransparentMesh: 1
---- !u!1 &1610656807
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1610656810}
- - component: {fileID: 1610656809}
- - component: {fileID: 1610656808}
- m_Layer: 0
- m_Name: EventSystem
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1610656808
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1610656807}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_SendPointerHoverToParent: 1
- m_HorizontalAxis: Horizontal
- m_VerticalAxis: Vertical
- m_SubmitButton: Submit
- m_CancelButton: Cancel
- m_InputActionsPerSecond: 10
- m_RepeatDelay: 0.5
- m_ForceModuleActive: 0
---- !u!114 &1610656809
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1610656807}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_FirstSelected: {fileID: 0}
- m_sendNavigationEvents: 1
- m_DragThreshold: 10
---- !u!4 &1610656810
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1610656807}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1614669908
GameObject:
m_ObjectHideFlags: 0
@@ -230358,9 +230405,10 @@ SceneRoots:
- {fileID: 1886732940}
- {fileID: 1467737217}
- {fileID: 826737787}
- - {fileID: 1610656810}
- {fileID: 1805985062}
- {fileID: 1204801357}
- {fileID: 1987581050}
- {fileID: 1505150131}
- {fileID: 1986025700}
+ - {fileID: 1516723168}
+ - {fileID: 1199227227}
diff --git a/SXElectricityInformationAcquisition/Assets/Screwdriver.cs b/SXElectricityInformationAcquisition/Assets/Screwdriver.cs
index 84f64228..8b65442f 100644
--- a/SXElectricityInformationAcquisition/Assets/Screwdriver.cs
+++ b/SXElectricityInformationAcquisition/Assets/Screwdriver.cs
@@ -40,7 +40,7 @@ public class Screwdriver : MonoBehaviour
///
/// 螺丝
- ///
+ /// a
public GameObject[] ScrewObj;
///
@@ -202,6 +202,7 @@ public class Screwdriver : MonoBehaviour
ScrewL.gameObject.SetActive(false);
}
+
///
/// 集中器右侧螺丝
///
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs
new file mode 100644
index 00000000..e87a7abf
--- /dev/null
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace DefaultNamespace.ProcessMode
+{
+ public class ActionWithDescription
+ {
+ public List TargetObjects { get; set; } // 闇瑕佺偣鍑荤殑鐩爣鐗╀綋鍒楄〃
+ public Action Action { get; set; } // 涓庣偣鍑诲叧鑱旂殑鍔ㄧ敾鎴栧弽搴
+ public string Description { get; set; } // 鍔ㄤ綔鎻忚堪
+ public int CurrentObjectIndex { get; set; } // 褰撳墠瀵硅薄鐨勭偣鍑荤储寮
+
+ public ActionWithDescription(List targetObjects, Action action, string description)
+ {
+ TargetObjects = targetObjects ?? new List();
+ Action = action;
+ Description = description;
+ CurrentObjectIndex = 0; // 鍒濆鍖栦负绗竴涓璞
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs.meta b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs.meta
new file mode 100644
index 00000000..db09fd60
--- /dev/null
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ActionWithDescription.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f69314a2c8ae4f2f9463f3d3a29d7a30
+timeCreated: 1718109086
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationProcessManager.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationProcessManager.cs
index 7c0f6eb0..98fe11fd 100644
--- a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationProcessManager.cs
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationProcessManager.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using MotionFramework;
using UnityEngine;
@@ -6,40 +7,16 @@ using UnityEngine.UI;
namespace DefaultNamespace.ProcessMode
{
[ScriptDescription("娴佺▼妯″紡绠$悊鍣")]
- public class AnimationProcessManager : MonoBehaviour
+ public class AnimationProcessManager : ModuleSingleton, IModule
{
- private Dictionary processes; // 瀛樺偍涓嶅悓绫诲瀷娴佺▼鐨勫瓧鍏
+ private Dictionary processes = new Dictionary();
public ProcessMode currentMode; // 褰撳墠妯″紡
private int currentStepIndex; // 褰撳墠姝ラ绱㈠紩
- private ProcessUIManager uiManager; // 寮曠敤UIManager瀹炰緥
+ private int currentActionIndex; // 褰撳墠鍔ㄤ綔绱㈠紩锛岀‘淇濆姩浣滈『搴
+ private int currentActionGameIndex; // 褰撳墠鍔ㄤ綔绱㈠紩锛岀‘淇濆姩浣滈『搴
+ private List incorrectClicks; // 閿欒鐐瑰嚮鐨勮褰曞垪琛
- ///
- /// 鏋勯犲嚱鏁
- ///
- /// UIManager瀹炰緥
- public AnimationProcessManager(ProcessUIManager uiManager)
- {
- this.uiManager = uiManager;
- processes = new Dictionary();
- InitializeProcesses(); // 鍒濆鍖栨祦绋
- currentStepIndex = 0;
- }
- ///
- /// 鍒濆鍖栨墍鏈夋祦绋
- ///
- private void InitializeProcesses()
- {
- AddProcess("Teaching"); // 娣诲姞鏁欏娴佺▼
- AddProcess("Training"); // 娣诲姞鍩硅娴佺▼
- AddProcess("Practice"); // 娣诲姞缁冧範娴佺▼
- AddProcess("Assessment"); // 娣诲姞鑰冩牳娴佺▼
- }
-
- ///
- /// 娣诲姞涓涓柊鐨勬祦绋
- ///
- /// 娴佺▼绫诲瀷
public void AddProcess(string type)
{
if (!processes.ContainsKey(type))
@@ -48,11 +25,6 @@ namespace DefaultNamespace.ProcessMode
}
}
- ///
- /// 鍚戞寚瀹氱被鍨嬬殑娴佺▼涓坊鍔犳楠
- ///
- /// 娴佺▼绫诲瀷
- /// 瑕佹坊鍔犵殑姝ラ
public void AddStepToProcess(string type, AnimationStep step)
{
if (processes.ContainsKey(type))
@@ -61,24 +33,6 @@ namespace DefaultNamespace.ProcessMode
}
}
- ///
- /// 鑾峰彇鎸囧畾绫诲瀷娴佺▼鐨勬昏瘎鍒
- ///
- /// 娴佺▼绫诲瀷
- /// 鎬昏瘎鍒
- public float GetTotalScoreForProcess(string type)
- {
- if (processes.ContainsKey(type))
- {
- return processes[type].CalculateTotalScore();
- }
- return 0;
- }
-
- ///
- /// 澶勭悊鐢ㄦ埛鐐瑰嚮浜嬩欢
- ///
- /// 琚偣鍑荤殑瀵硅薄
public void HandleClick(GameObject clickedObject)
{
string type = currentMode.ToString();
@@ -90,35 +44,113 @@ namespace DefaultNamespace.ProcessMode
if (currentStepIndex < process.Steps.Count)
{
AnimationStep step = process.Steps[currentStepIndex];
+ ActionWithDescription currentAction = step.Actions[currentActionIndex];
- if (step.CorrectObject == clickedObject)
+ // 妫鏌ュ綋鍓嶇偣鍑绘槸鍚︿负褰撳墠鍔ㄤ綔棰勬湡鐨勫璞
+ if (currentAction.CurrentObjectIndex < currentAction.TargetObjects.Count &&
+ currentAction.TargetObjects[currentAction.CurrentObjectIndex] == clickedObject)
{
- step.PlayAnimation();
+ Debug.Log($"姝g‘鐐瑰嚮浜嗭細{clickedObject.name}");
+ currentAction.CurrentObjectIndex++; // 姝g‘鐐瑰嚮锛岄掑瀵硅薄绱㈠紩
- switch (currentMode)
+ // 妫鏌ユ槸鍚﹀畬鎴愪簡褰撳墠鍔ㄤ綔涓殑鎵鏈夊璞$偣鍑
+ if (currentAction.CurrentObjectIndex >= currentAction.TargetObjects.Count)
{
- case ProcessMode.Teaching:
- uiManager.HighlightNextStep(step); // 楂樹寒涓嬩竴涓楠
- break;
- case ProcessMode.Training:
- uiManager.ShowTrainingStep(step); // 鏄剧ず鍩硅姝ラ
- break;
- case ProcessMode.Practice:
- uiManager.ShowPracticeStep(step); // 鏄剧ず缁冧範姝ラ
- break;
- case ProcessMode.Assessment:
- // 鏃犳彁绀
- break;
- }
+ Debug.Log($"瀹屾垚浜嗗姩浣 {currentActionIndex + 1}");
+ step.PlayAnimation(currentActionIndex); // 鎾斁褰撳墠鍔ㄤ綔鐨勫姩鐢
+ DisplayActionFeedback(currentMode, currentAction); // 鏄剧ず鍙嶉
- currentStepIndex++;
+ // 閲嶇疆褰撳墠鍔ㄤ綔瀵硅薄绱㈠紩锛屽苟鍑嗗涓嬩竴涓姩浣
+ currentActionIndex++;
+ currentAction.CurrentObjectIndex = 0;
+
+ if (currentActionIndex >= step.Actions.Count)
+ {
+ Debug.Log("鎵鏈夊姩浣滃畬鎴愶紒");
+ currentActionIndex = 0; // 閲嶇疆鍔ㄤ綔绱㈠紩鎴栬繘鍏ヤ笅涓涓ぇ姝ラ
+ currentStepIndex++;
+ }
+ else
+ {
+ Debug.Log("寮濮嬩笅涓涓姩浣滐紒");
+ PrepareNextStep(currentMode, process, currentStepIndex);
+ }
+ }
}
else
{
- Debug.Log("Incorrect object clicked.");
+ Debug.Log($"閿欒鐐瑰嚮鎴栭『搴忛敊璇細{clickedObject.name}");
+ // 閿欒鐐瑰嚮澶勭悊锛屽彲浠ラ夋嫨閲嶇疆褰撳墠鍔ㄤ綔鐨勭储寮曟垨鍏朵粬澶勭悊閫昏緫
}
}
}
}
+
+
+ private void DisplayActionFeedback(ProcessMode mode, ActionWithDescription action)
+ {
+ switch (mode)
+ {
+ case ProcessMode.Teaching:
+ // 楂樹寒鏄剧ず涓嬩竴涓渶瑕佺偣鍑荤殑鍦版柟
+ // HighlightNextStep(action.);
+ break;
+ case ProcessMode.Training:
+ // 鍦ㄧ敾闈㈠彸涓婅鏄剧ず娴佺▼姝ラ
+ // uiManager.ShowTrainingStep(action.Description);
+ break;
+ case ProcessMode.Practice:
+ // 鍙樉绀哄綋鍓嶆楠
+ // uiManager.ShowPracticeStep(action.Description);
+ break;
+ case ProcessMode.Assessment:
+ // 鏃犱换浣曟彁绀
+ break;
+ }
+ }
+
+ private void PrepareNextStep(ProcessMode mode, AnimationProcess process, int nextStepIndex)
+ {
+ if (nextStepIndex < process.Steps.Count)
+ {
+ ActionWithDescription nextAction = process.Steps[nextStepIndex].Actions[0];
+ if (mode == ProcessMode.Teaching)
+ {
+ // HighlightNextStep(nextAction.TargetObject);
+ }
+ else if (mode == ProcessMode.Training)
+ {
+ // uiManager.ShowTrainingStep("寮濮嬩笅涓涓楠...");
+ }
+ }
+ else
+ {
+ // uiManager.DisplayMessage("鎵鏈夋楠ゅ畬鎴愶紒");
+ }
+ }
+
+ private void HighlightNextStep(GameObject target)
+ {
+ // 瀹炵幇楂樹寒閫昏緫锛屾瘮濡傛敼鍙樺璞¢鑹叉垨娣诲姞鍏夌幆鏁堟灉
+ }
+
+
+ public void OnCreate(object createParam)
+ {
+ processes = new Dictionary();
+ incorrectClicks = new List();
+ }
+
+ public void OnUpdate()
+ {
+ }
+
+ public void OnDestroy()
+ {
+ }
+
+ public void OnGUI()
+ {
+ }
}
}
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationStep.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationStep.cs
index 7f27f184..418d8aeb 100644
--- a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationStep.cs
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/AnimationStep.cs
@@ -9,32 +9,24 @@ namespace DefaultNamespace.ProcessMode
///
public class AnimationStep
{
- public string Description { get; set; } // 姝ラ鎻忚堪
+ public string StepDescription { get; set; } // 姝ラ鎻忚堪
public float Score { get; set; } // 姝ラ璇勫垎
- public Action Animation { get; private set; } // DOTween鍔ㄧ敾
- public GameObject CorrectObject { get; set; } // 姝g‘鐨勭偣鍑诲璞
+ public List Actions { get; private set; } // 鍔ㄤ綔鍒楄〃
- ///
- /// 鏋勯犲嚱鏁
- ///
- /// 姝ラ鎻忚堪
- /// 姝ラ璇勫垎
- /// 瑕佹挱鏀剧殑鍔ㄧ敾
- /// 姝g‘鐨勭偣鍑诲璞
- public AnimationStep(string description, float score, Action animation, GameObject correctObject)
+ public AnimationStep(string stepDescription, float score, List actions)
{
- Description = description;
+ StepDescription = stepDescription;
Score = score;
- Animation = animation;
- CorrectObject = correctObject;
+ Actions = actions;
}
- ///
- /// 鎾斁鍔ㄧ敾
- ///
- public void PlayAnimation()
+ public void PlayAnimation(int index)
{
- Animation?.Invoke();
+ if (index >= 0 && index < Actions.Count)
+ {
+ Actions[index].Action?.Invoke(); // 鎵ц鍔ㄧ敾
+ Debug.Log(Actions[index].Description); // 杈撳嚭鍔ㄤ綔鎻忚堪
+ }
}
}
}
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs
new file mode 100644
index 00000000..009f4b89
--- /dev/null
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+
+namespace DefaultNamespace.ProcessMode
+{
+ public class IncorrectClick
+ {
+ public GameObject ClickedObject { get; set; }
+ public int StepIndex { get; set; }
+ public int ActionIndex { get; set; } // 鏂板锛氬姩浣滅储寮
+
+ public IncorrectClick(GameObject clickedObject, int stepIndex, int actionIndex)
+ {
+ ClickedObject = clickedObject;
+ StepIndex = stepIndex;
+ ActionIndex = actionIndex;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs.meta b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs.meta
new file mode 100644
index 00000000..80d9aae4
--- /dev/null
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/IncorrectClick.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e49a83ec6ff240d38d3b702d006793b2
+timeCreated: 1718155453
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ProcessUIManager.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ProcessUIManager.cs
index ec81864f..478cbea5 100644
--- a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ProcessUIManager.cs
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/ProcessUIManager.cs
@@ -1,84 +1,85 @@
-using UnityEngine;
-using UnityEngine.UI;
-
-namespace DefaultNamespace.ProcessMode
-{
- public class ProcessUIManager
- {
- public Text trainingTextBox; // 鍩硅妯″紡鐨勬枃鏈
- public Text practiceTextBox; // 缁冧範妯″紡鐨勬枃鏈
- public GameObject highlightObject; // 楂樹寒瀵硅薄锛岀敤浜庢暀瀛︽ā寮
-
- public AnimationProcessManager processManager; // 娴佺▼绠$悊鍣ㄥ疄渚
-
- private void Start()
- {
- processManager = new AnimationProcessManager(this); // 浼犻扷IManager瀹炰緥
- }
-
- private void Update()
- {
- if (Input.GetMouseButtonDown(0))
- {
- GameObject clickedObject = DetectClickedObject();
- if (clickedObject != null)
- {
- processManager.HandleClick(clickedObject);
- }
- }
- }
-
- ///
- /// 妫娴嬬偣鍑荤殑瀵硅薄
- ///
- /// 鐐瑰嚮鐨勫璞
- private GameObject DetectClickedObject()
- {
- Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
- RaycastHit hit;
- if (Physics.Raycast(ray, out hit))
- {
- return hit.collider.gameObject;
- }
- return null;
- }
-
- ///
- /// 鏄剧ず鍩硅姝ラ淇℃伅
- ///
- /// 褰撳墠姝ラ
- public void ShowTrainingStep(AnimationStep step)
- {
- if (trainingTextBox != null)
- {
- trainingTextBox.text = step.Description;
- }
- }
-
- ///
- /// 鏄剧ず缁冧範姝ラ淇℃伅
- ///
- /// 褰撳墠姝ラ
- public void ShowPracticeStep(AnimationStep step)
- {
- if (practiceTextBox != null)
- {
- practiceTextBox.text = step.Description;
- }
- }
-
- ///
- /// 楂樹寒鏄剧ず涓嬩竴涓渶瑕佺偣鍑荤殑鍦版柟锛堟暀瀛︽ā寮忥級
- ///
- /// 褰撳墠姝ラ
- public void HighlightNextStep(AnimationStep step)
- {
- if (highlightObject != null)
- {
- highlightObject.SetActive(true);
- // 鍋囪浣犳湁涓涓柟娉曟潵瀹氫綅楂樹寒瀵硅薄
- // highlightObject.transform.position = ...;
- }
- }
- }
-}
\ No newline at end of file
+// using UnityEngine;
+// using UnityEngine.UI;
+//
+// namespace DefaultNamespace.ProcessMode
+// {
+// public class ProcessUIManager : MonoBehaviour
+// {
+// public Text trainingTextBox; // 鍩硅妯″紡鐨勬枃鏈
+// public Text practiceTextBox; // 缁冧範妯″紡鐨勬枃鏈
+// public GameObject highlightObject; // 楂樹寒瀵硅薄锛岀敤浜庢暀瀛︽ā寮
+//
+// public AnimationProcessManager processManager; // 娴佺▼绠$悊鍣ㄥ疄渚
+//
+// private void Start()
+// {
+// processManager = new AnimationProcessManager(); // 浼犻扷IManager瀹炰緥
+// }
+//
+// private void Update()
+// {
+// if (Input.GetMouseButtonDown(0))
+// {
+// GameObject clickedObject = DetectClickedObject();
+// if (clickedObject != null)
+// {
+// processManager.HandleClick(clickedObject);
+// }
+// }
+// }
+//
+// ///
+// /// 妫娴嬬偣鍑荤殑瀵硅薄
+// ///
+// /// 鐐瑰嚮鐨勫璞
+// private GameObject DetectClickedObject()
+// {
+// Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
+// RaycastHit hit;
+// if (Physics.Raycast(ray, out hit))
+// {
+// return hit.collider.gameObject;
+// }
+//
+// return null;
+// }
+//
+// ///
+// /// 鏄剧ず鍩硅姝ラ淇℃伅
+// ///
+// /// 褰撳墠姝ラ
+// public void ShowTrainingStep(AnimationStep step)
+// {
+// if (trainingTextBox != null)
+// {
+// trainingTextBox.text = step.Description;
+// }
+// }
+//
+// ///
+// /// 鏄剧ず缁冧範姝ラ淇℃伅
+// ///
+// /// 褰撳墠姝ラ
+// public void ShowPracticeStep(AnimationStep step)
+// {
+// if (practiceTextBox != null)
+// {
+// practiceTextBox.text = step.Description;
+// }
+// }
+//
+// ///
+// /// 楂樹寒鏄剧ず涓嬩竴涓渶瑕佺偣鍑荤殑鍦版柟锛堟暀瀛︽ā寮忥級
+// ///
+// /// 褰撳墠姝ラ
+// public void HighlightNextStep(AnimationStep step)
+// {
+// if (highlightObject != null)
+// {
+// highlightObject.SetActive(true);
+// // 鍋囪浣犳湁涓涓柟娉曟潵瀹氫綅楂樹寒瀵硅薄
+// // highlightObject.transform.position = ...;
+// }
+// }
+// }
+// }
\ No newline at end of file
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs
index 0f2df60c..76e0d882 100644
--- a/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ProcessMode/test.cs
@@ -1,4 +1,8 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
using DG.Tweening;
+using MotionFramework;
using UnityEngine;
namespace DefaultNamespace.ProcessMode
@@ -7,40 +11,54 @@ namespace DefaultNamespace.ProcessMode
{
private AnimationProcessManager processManager;
- public GameObject device1; // 鍋囪杩欐槸鍦烘櫙涓殑涓涓澶
- public GameObject device2; // 鍋囪杩欐槸鍦烘櫙涓殑鍙︿竴涓澶
- private void Start()
+ private IEnumerator Start()
{
- processManager = GetComponent();
+ processManager = MotionEngine.GetModule();
- // 璁剧疆妯″紡
- processManager.currentMode = ProcessMode.Teaching;
- // 鍒涘缓姝ラ骞堕伩鍏嶆湭鍒濆鍖栫殑閿欒
- AnimationStep step1 = null;
- AnimationStep step2 = null;
+ yield return new WaitForSeconds(1);
+
+ processManager.AddProcess("Teaching");
+
+ List actions = CreateStepActions();
+ AnimationStep step = new AnimationStep($"鎻忚堪姝ラ", 100, actions);
+ processManager.AddStepToProcess("Teaching", step);
- step1 = new AnimationStep("Step 1: Click device1", 10, () =>
- {
- device1.transform.DOMove(new Vector3(0, 1, 0), 1).OnComplete(() =>
- {
- processManager.AddStepToProcess("Teaching", step1);
- });
- }, device1);
+
+ // List actions1 = CreateStepActions1();
+ // AnimationStep step1 = new AnimationStep($"鎻忚堪姝ラ", 100, actions1);
+ // processManager.AddStepToProcess("Teaching", step1);
+ }
- step2 = new AnimationStep("Step 2: Click device2", 20, () =>
- {
- device2.transform.DOScale(new Vector3(2, 2, 2), 1).OnComplete(() =>
- {
- processManager.AddStepToProcess("Teaching", step2);
- });
- }, device2);
+ private List CreateStepActions()
+ {
+ List actions = new List();
- // 鍚戞祦绋嬩腑娣诲姞姝ラ
- processManager.AddStepToProcess("Teaching", step1);
- processManager.AddStepToProcess("Teaching", step2);
+ GameObject obj1 = GameObject.Find("鍙樼數绠盻闂");
+ GameObject 鎻掑骇 = GameObject.Find("鎻掑骇");
+ Action action1 = () => { };
+ Action action2 = () => { };
+
+ actions.Add(new ActionWithDescription(new List() { obj1,鎻掑骇 }, action1, $"姝ラ {1} 鐨勫姩浣滄弿杩"));
+ actions.Add(new ActionWithDescription(new List() { 鎻掑骇,obj1}, action1, $"姝ラ {2} 鐨勫姩浣滄弿杩"));
+
+ return actions;
+ }
+
+ private List CreateStepActions1()
+ {
+ List actions = new List();
+
+ GameObject obj1 = GameObject.Find("鍙樼數绠盻闂");
+ GameObject 鎻掑骇 = GameObject.Find("鎻掑骇");
+ Action action1 = () => { };
+
+ actions.Add(new ActionWithDescription(new List() { obj1 }, action1, $"姝ラ {1} 鐨勫姩浣滄弿杩"));
+ actions.Add(new ActionWithDescription(new List() { 鎻掑骇 }, action1, $"姝ラ {2} 鐨勫姩浣滄弿杩"));
+
+ return actions;
}
private void Update()
@@ -64,6 +82,7 @@ namespace DefaultNamespace.ProcessMode
{
return hit.collider.gameObject;
}
+
return null;
}
}
diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackGameObjectComponent.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackGameObjectComponent.cs
index 0d3fa849..cf6121a1 100644
--- a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackGameObjectComponent.cs
+++ b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackGameObjectComponent.cs
@@ -15,7 +15,7 @@ namespace ToolsPack
{
private HighlightEffect _highlight;
private int index;
- [SerializeField] private ModelTypeEnum _modelTypeEnum;
+ [SerializeField] private ModelTypeEnum _modelTypeEnum;
private void Awake()
{
diff --git a/SXElectricityInformationAcquisition/Assets/taoruiqi/Script/ElectricCheckPen.cs b/SXElectricityInformationAcquisition/Assets/taoruiqi/Script/ElectricCheckPen.cs
index 909d2123..28157a69 100644
--- a/SXElectricityInformationAcquisition/Assets/taoruiqi/Script/ElectricCheckPen.cs
+++ b/SXElectricityInformationAcquisition/Assets/taoruiqi/Script/ElectricCheckPen.cs
@@ -69,7 +69,7 @@ public class ElectricCheckPen : MonoBehaviour
{
ElectricCheckPenOBJ.gameObject.transform.DOLocalMove(new Vector3(3.334f, 0.489f, 0.107f), 1f).OnComplete(() =>
{
-
+
ElectricCheckPenOBJ.gameObject.transform.DOLocalRotate(new Vector3(20.78f, 72.47f, 171.503f), 1.5f).OnComplete(() =>
{
Debug.Log("123");