This commit is contained in:
yzx 2024-06-24 17:46:41 +08:00
parent 23c9956b7d
commit 9ed39a9382
6 changed files with 66 additions and 135 deletions

View File

@ -68,7 +68,6 @@ public class JunctionBox : MonoBehaviour
originalPosition.Add(GameObjectSlider[i].transform.localPosition); originalPosition.Add(GameObjectSlider[i].transform.localPosition);
//originalRotation = GameObjectSlider[i].transform.localRotation; //originalRotation = GameObjectSlider[i].transform.localRotation;
} }
} }
/// <summary> /// <summary>

View File

@ -259,6 +259,10 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: APP value: APP
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6053353591068959239, guid: fa12b84946083d14cb4447029910be28, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6205274277508386708, guid: fa12b84946083d14cb4447029910be28, type: 3} - target: {fileID: 6205274277508386708, guid: fa12b84946083d14cb4447029910be28, type: 3}
propertyPath: m_Interactable propertyPath: m_Interactable
value: 1 value: 1

View File

@ -8998,7 +8998,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8322912254063910965, guid: 8a244cdd2f00e534aadd2512c3bbfda1, type: 3} - target: {fileID: 8322912254063910965, guid: 8a244cdd2f00e534aadd2512c3bbfda1, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -15.841 value: -15.151
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8322912254063910965, guid: 8a244cdd2f00e534aadd2512c3bbfda1, type: 3} - target: {fileID: 8322912254063910965, guid: 8a244cdd2f00e534aadd2512c3bbfda1, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
@ -18567,7 +18567,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &839913787 --- !u!224 &839913787
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -23400,7 +23400,7 @@ Light:
serializedVersion: 10 serializedVersion: 10
m_Type: 1 m_Type: 1
m_Shape: 0 m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1 m_Intensity: 1
m_Range: 10 m_Range: 10
m_SpotAngle: 30 m_SpotAngle: 30

View File

@ -25132,74 +25132,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1807550687} m_GameObject: {fileID: 1807550687}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1810945299
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1810945302}
- component: {fileID: 1810945301}
- component: {fileID: 1810945300}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1810945300
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1810945299}
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 &1810945301
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1810945299}
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 &1810945302
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1810945299}
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 &1812223123 --- !u!1 &1812223123
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -29607,7 +29539,6 @@ SceneRoots:
- {fileID: 843085103} - {fileID: 843085103}
- {fileID: 27506717} - {fileID: 27506717}
- {fileID: 1703800128} - {fileID: 1703800128}
- {fileID: 1810945302}
- {fileID: 505215069} - {fileID: 505215069}
- {fileID: 450266584} - {fileID: 450266584}
- {fileID: 25011097} - {fileID: 25011097}

View File

@ -16,15 +16,15 @@ namespace DefaultNamespace.ProcessMode
[ScriptDescription("流程模式管理器")] [ScriptDescription("流程模式管理器")]
public class AnimationProcessManager : ModuleSingleton<AnimationProcessManager>, IModule public class AnimationProcessManager : ModuleSingleton<AnimationProcessManager>, IModule
{ {
private Dictionary<string, AnimationProcess> processes = new Dictionary<string, AnimationProcess>(); private Dictionary<string, AnimationProcess> _processes = new Dictionary<string, AnimationProcess>();
public ProcessMode currentMode; // 当前模式 private ProcessMode _currentMode; // 当前模式
private int currentStepIndex; // 当前步骤索引 private int _currentStepIndex; // 当前步骤索引
private int currentActionIndex; // 当前动作索引,确保动作顺序 private int _currentActionIndex; // 当前动作索引,确保动作顺序
private int currentActionGameIndex; // 当前动作索引,确保动作顺序 private int _currentActionGameIndex; // 当前动作索引,确保动作顺序
private Dictionary<int, List<string>> incorrectClicksPerStep; // 每个步骤的错误点击记录 private Dictionary<int, List<string>> _incorrectClicksPerStep; // 每个步骤的错误点击记录
private SceneStepData _sceneStepData; private SceneStepData _sceneStepData;
public AnimationProcess CurrentProcess => processes[currentMode.ToString()]; public AnimationProcess CurrentProcess => _processes[_currentMode.ToString()];
public delegate void CompleteEventHandler(); public delegate void CompleteEventHandler();
@ -52,15 +52,15 @@ namespace DefaultNamespace.ProcessMode
// Enum.TryParse(type, true, out currentMode); // Enum.TryParse(type, true, out currentMode);
// } // }
processes[type] = new AnimationProcess(type); _processes[type] = new AnimationProcess(type);
Enum.TryParse(type, true, out currentMode); Enum.TryParse(type, true, out _currentMode);
} }
public void AddStepToProcess(string type, AnimationStep step) public void AddStepToProcess(string type, AnimationStep step)
{ {
if (processes.ContainsKey(type)) if (_processes.ContainsKey(type))
{ {
processes[type].AddStep(step); _processes[type].AddStep(step);
} }
} }
@ -71,27 +71,27 @@ namespace DefaultNamespace.ProcessMode
/// <param name="clickedObject">错误点击的物体</param> /// <param name="clickedObject">错误点击的物体</param>
private void AddIncorrectClick(int stepIndex, string clickedObject) private void AddIncorrectClick(int stepIndex, string clickedObject)
{ {
if (!incorrectClicksPerStep.ContainsKey(stepIndex)) if (!_incorrectClicksPerStep.ContainsKey(stepIndex))
{ {
incorrectClicksPerStep[stepIndex] = new List<string>(); _incorrectClicksPerStep[stepIndex] = new List<string>();
} }
incorrectClicksPerStep[stepIndex].Add(clickedObject); _incorrectClicksPerStep[stepIndex].Add(clickedObject);
Debug.Log($"步骤 {stepIndex + 1} 错误点击的物体: {clickedObject}"); Debug.Log($"步骤 {stepIndex + 1} 错误点击的物体: {clickedObject}");
} }
public void HandleClick(string clickedObject) public void HandleClick(string clickedObject)
{ {
string type = currentMode.ToString(); string type = _currentMode.ToString();
if (processes.ContainsKey(type)) if (_processes.ContainsKey(type))
{ {
AnimationProcess process = processes[type]; AnimationProcess process = _processes[type];
if (currentStepIndex < process.Steps.Count) if (_currentStepIndex < process.Steps.Count)
{ {
AnimationStep step = process.Steps[currentStepIndex]; AnimationStep step = process.Steps[_currentStepIndex];
ActionWithDescription currentAction = step.Actions[currentActionIndex]; ActionWithDescription currentAction = step.Actions[_currentActionIndex];
if (currentAction.IsSequential) if (currentAction.IsSequential)
{ {
@ -101,7 +101,7 @@ namespace DefaultNamespace.ProcessMode
{ {
Debug.Log($"正确点击了:{clickedObject}"); Debug.Log($"正确点击了:{clickedObject}");
HandleModeFeedback(currentMode, currentAction); // 处理模式特定的反馈 HandleModeFeedback(_currentMode, currentAction); // 处理模式特定的反馈
currentAction.CurrentObjectIndex++; // 正确点击,递增对象索引 currentAction.CurrentObjectIndex++; // 正确点击,递增对象索引
currentAction.ClickedObjects.Add(clickedObject); // 添加到已点击对象集合 currentAction.ClickedObjects.Add(clickedObject); // 添加到已点击对象集合
if (currentAction.CurrentObjectIndex >= currentAction.TargetObjects.Count) if (currentAction.CurrentObjectIndex >= currentAction.TargetObjects.Count)
@ -113,7 +113,7 @@ namespace DefaultNamespace.ProcessMode
{ {
string correctObjectName = currentAction.TargetObjects[currentAction.CurrentObjectIndex]; string correctObjectName = currentAction.TargetObjects[currentAction.CurrentObjectIndex];
Debug.Log($"错误点击或顺序错误:{clickedObject}。正确的物体是:{correctObjectName}"); Debug.Log($"错误点击或顺序错误:{clickedObject}。正确的物体是:{correctObjectName}");
AddIncorrectClick(currentStepIndex, clickedObject); AddIncorrectClick(_currentStepIndex, clickedObject);
} }
} }
else else
@ -131,7 +131,7 @@ namespace DefaultNamespace.ProcessMode
{ {
Debug.Log($"正确点击了:{clickedObject}"); Debug.Log($"正确点击了:{clickedObject}");
currentAction.ClickedObjects.Add(clickedObject); // 添加到已点击对象集合 currentAction.ClickedObjects.Add(clickedObject); // 添加到已点击对象集合
HandleModeFeedback(currentMode, currentAction); // 处理模式特定的反馈 HandleModeFeedback(_currentMode, currentAction); // 处理模式特定的反馈
if (currentAction.ClickedObjects.Count >= currentAction.TargetObjects.Count) if (currentAction.ClickedObjects.Count >= currentAction.TargetObjects.Count)
{ {
@ -153,7 +153,7 @@ namespace DefaultNamespace.ProcessMode
string correctObjects = string.Join(",", correctObjectNames); string correctObjects = string.Join(",", correctObjectNames);
Debug.Log($"正确的物体是:{correctObjects}"); Debug.Log($"正确的物体是:{correctObjects}");
AddIncorrectClick(currentStepIndex, clickedObject); AddIncorrectClick(_currentStepIndex, clickedObject);
} }
} }
} }
@ -167,21 +167,21 @@ namespace DefaultNamespace.ProcessMode
/// <param name="currentAction">当前动作</param> /// <param name="currentAction">当前动作</param>
private void CompleteAction(AnimationStep step, ActionWithDescription currentAction) private void CompleteAction(AnimationStep step, ActionWithDescription currentAction)
{ {
Debug.Log($"完成了动作 {currentActionIndex + 1}"); Debug.Log($"完成了动作 {_currentActionIndex + 1}");
step.PlayAnimation(currentActionIndex); // 播放当前动作的动画 step.PlayAnimation(_currentActionIndex); // 播放当前动作的动画
currentActionIndex++; _currentActionIndex++;
currentAction.CurrentObjectIndex = 0; // 重置当前动作对象索引 currentAction.CurrentObjectIndex = 0; // 重置当前动作对象索引
currentAction.ClickedObjects.Clear(); // 重置已点击对象集合 currentAction.ClickedObjects.Clear(); // 重置已点击对象集合
currentAction.FeedbackDisplayed = false; // 重置反馈显示标志 currentAction.FeedbackDisplayed = false; // 重置反馈显示标志
if (currentActionIndex >= step.Actions.Count) if (_currentActionIndex >= step.Actions.Count)
{ {
Debug.Log("所有动作完成!"); Debug.Log("所有动作完成!");
if (currentMode == ProcessMode.Practice) if (_currentMode == ProcessMode.Practice)
{ {
if (currentStepIndex < processes[currentMode.ToString()].Steps.Count) if (_currentStepIndex < _processes[_currentMode.ToString()].Steps.Count)
{ {
// if (currentMode == ProcessMode.Practice) // if (currentMode == ProcessMode.Practice)
// { // {
@ -189,13 +189,13 @@ namespace DefaultNamespace.ProcessMode
// HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤 // HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤
// } // }
var nextStep = processes[currentMode.ToString()].Steps[currentStepIndex]; var nextStep = _processes[_currentMode.ToString()].Steps[_currentStepIndex];
HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤 HandleModeFeedback(_currentMode, nextStep.Actions[0]); // 准备下一个步骤
currentActionIndex = 0; // 重置动作索引或进入下一个大步骤 _currentActionIndex = 0; // 重置动作索引或进入下一个大步骤
currentStepIndex++; _currentStepIndex++;
if (currentStepIndex == processes[currentMode.ToString()].Steps.Count) if (_currentStepIndex == _processes[_currentMode.ToString()].Steps.Count)
{ {
CalculateTotalScore(); CalculateTotalScore();
Debug.Log("全部完成了!!!!"); Debug.Log("全部完成了!!!!");
@ -214,9 +214,9 @@ namespace DefaultNamespace.ProcessMode
} }
else else
{ {
currentActionIndex = 0; // 重置动作索引或进入下一个大步骤 _currentActionIndex = 0; // 重置动作索引或进入下一个大步骤
currentStepIndex++; _currentStepIndex++;
if (currentStepIndex < processes[currentMode.ToString()].Steps.Count) if (_currentStepIndex < _processes[_currentMode.ToString()].Steps.Count)
{ {
// if (currentMode == ProcessMode.Practice) // if (currentMode == ProcessMode.Practice)
// { // {
@ -224,8 +224,8 @@ namespace DefaultNamespace.ProcessMode
// HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤 // HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤
// } // }
var nextStep = processes[currentMode.ToString()].Steps[currentStepIndex]; var nextStep = _processes[_currentMode.ToString()].Steps[_currentStepIndex];
HandleModeFeedback(currentMode, nextStep.Actions[0]); // 准备下一个步骤 HandleModeFeedback(_currentMode, nextStep.Actions[0]); // 准备下一个步骤
} }
else else
{ {
@ -242,7 +242,7 @@ namespace DefaultNamespace.ProcessMode
else else
{ {
Debug.Log("开始下一个动作!"); Debug.Log("开始下一个动作!");
HandleModeFeedback(currentMode, step.Actions[currentActionIndex]); // 传递下一个动作对象 HandleModeFeedback(_currentMode, step.Actions[_currentActionIndex]); // 传递下一个动作对象
} }
} }
@ -382,9 +382,9 @@ namespace DefaultNamespace.ProcessMode
/// <param name="mode">模式</param> /// <param name="mode">模式</param>
public void SetCurrentMode(ProcessMode mode) public void SetCurrentMode(ProcessMode mode)
{ {
currentMode = mode; _currentMode = mode;
currentStepIndex = 0; _currentStepIndex = 0;
currentActionIndex = 0; _currentActionIndex = 0;
} }
@ -392,7 +392,7 @@ namespace DefaultNamespace.ProcessMode
{ {
if (nextStepOrAction is ActionWithDescription practiceAction) if (nextStepOrAction is ActionWithDescription practiceAction)
{ {
OnSendMessagePrompt(practiceAction.Description); if (OnSendMessagePrompt != null) OnSendMessagePrompt(practiceAction.Description);
Debug.Log($"练习模式:{practiceAction.Description}"); Debug.Log($"练习模式:{practiceAction.Description}");
} }
} }
@ -403,12 +403,12 @@ namespace DefaultNamespace.ProcessMode
private void CalculateTotalScore() private void CalculateTotalScore()
{ {
float totalScore = 0; float totalScore = 0;
foreach (var step in processes[currentMode.ToString()].Steps) foreach (var step in _processes[_currentMode.ToString()].Steps)
{ {
int stepIndex = processes[currentMode.ToString()].Steps.IndexOf(step); int stepIndex = _processes[_currentMode.ToString()].Steps.IndexOf(step);
if (incorrectClicksPerStep.ContainsKey(stepIndex)) if (_incorrectClicksPerStep.TryGetValue(stepIndex, out var value))
{ {
Debug.Log($"步骤 {stepIndex + 1} 错误点击的物体: {string.Join(", ", incorrectClicksPerStep[stepIndex])}"); Debug.Log($"步骤 {stepIndex + 1} 错误点击的物体: {string.Join(", ", value)}");
} }
else else
{ {
@ -421,8 +421,8 @@ namespace DefaultNamespace.ProcessMode
public void OnCreate(object createParam) public void OnCreate(object createParam)
{ {
processes = new Dictionary<string, AnimationProcess>(); _processes = new Dictionary<string, AnimationProcess>();
incorrectClicksPerStep = new Dictionary<int, List<string>>(); _incorrectClicksPerStep = new Dictionary<int, List<string>>();
} }
public void OnUpdate() public void OnUpdate()
@ -527,9 +527,9 @@ namespace DefaultNamespace.ProcessMode
/// </summary> /// </summary>
public void InitializeFirstStep() public void InitializeFirstStep()
{ {
currentMode = MotionEngine.GetModule<DataConfigManager>().GetProcessMode(); _currentMode = MotionEngine.GetModule<DataConfigManager>().GetProcessMode();
AddProcess(currentMode.ToString()); AddProcess(_currentMode.ToString());
string json = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/DataConfig/SceneStepData.json"); string json = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/DataConfig/SceneStepData.json");
@ -557,21 +557,21 @@ namespace DefaultNamespace.ProcessMode
// AnimationStep step = new AnimationStep(stepData.StepDescription, _sceneStepData.taskList[0].stepList[index].defaultScore, actions); // AnimationStep step = new AnimationStep(stepData.StepDescription, _sceneStepData.taskList[0].stepList[index].defaultScore, actions);
AnimationStep step = new AnimationStep(stepData.StepDescription,stepData.Score , actions); AnimationStep step = new AnimationStep(stepData.StepDescription,stepData.Score , actions);
index++; index++;
AddStepToProcess(currentMode.ToString(), step); AddStepToProcess(_currentMode.ToString(), step);
} }
//教学模式和培训模式需要初始化一下 //教学模式和培训模式需要初始化一下
if (currentMode == ProcessMode.Teaching || currentMode == ProcessMode.Training) if (_currentMode == ProcessMode.Teaching || _currentMode == ProcessMode.Training)
{ {
if (CurrentProcess.Steps.Count > 0) if (CurrentProcess.Steps.Count > 0)
{ {
AnimationStep firstStep = CurrentProcess.Steps[0]; AnimationStep firstStep = CurrentProcess.Steps[0];
if (firstStep.Actions.Count > 0) if (firstStep.Actions.Count > 0)
{ {
HandleModeFeedback(currentMode, firstStep.Actions[0]); HandleModeFeedback(_currentMode, firstStep.Actions[0]);
} }
} }
} }
@ -580,7 +580,7 @@ namespace DefaultNamespace.ProcessMode
public ProcessMode GetProcessMode() public ProcessMode GetProcessMode()
{ {
return currentMode; return _currentMode;
} }
} }
} }

View File

@ -38,9 +38,6 @@
}, },
{ {
"content": "啊啥的啊啥的啊啥的" "content": "啊啥的啊啥的啊啥的"
},
{
"content": "12312312"
} }
] ]
} }