79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using UnityEngine;
 | |
| using UnityEngine.Rendering.VirtualTexturing;
 | |
| 
 | |
| /// <summary>
 | |
| /// 步骤状态控制(配置步骤初始状态,断线重连步骤状态加载,步骤状态结果实时提交)
 | |
| /// </summary>
 | |
| public class StepStateControl : MonoBehaviour
 | |
| {
 | |
|     //场景初始化
 | |
|     //背包初始化
 | |
|     //提示初始化
 | |
|     //设备初始化
 | |
|     //工具和材料初始化
 | |
|     //自定义初始化
 | |
| 
 | |
|     public static StepStateControl instance;
 | |
|     List<StepState> m_Steps;
 | |
| 
 | |
|     private void Awake()
 | |
|     {
 | |
|         DontDestroyOnLoad(gameObject);
 | |
|         instance = this;
 | |
|         m_Steps = transform.GetComponentsInChildren<StepState>(true).ToList();
 | |
|         m_Steps.ForEach(a=> { a.Init(); });
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 注册当前科目里步骤里某个需要初始化的状态脚本
 | |
|     /// </summary>
 | |
|     /// <param name="objName"></param>
 | |
|     //public void AddStepStateBase(int[] subProcessIds,string objName,Action<string> callback)
 | |
|     //{
 | |
|     //    List<StepState> ss=m_Steps.FindAll(a => a.systemId == GameManager.Instance.systemId && a.schemeId == GameManager.RunModelMgr.schemeID && subProcessIds.Contains(a.subProcessId));
 | |
|     //    if (ss.Count >0) 
 | |
|     //    {
 | |
|     //        ss.ForEach(a=> 
 | |
|     //        {
 | |
|     //            //StepStateBase sb = a.stepStateBases.Find(a => a.gameObject.name == objName);
 | |
|     //            //if (sb != null)
 | |
|     //            //{
 | |
|     //            //    sb.AddResetFunction(callback);
 | |
|     //            //}
 | |
|     //        });
 | |
|     //    }
 | |
|     //}
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 调用初始化步骤
 | |
|     /// </summary>
 | |
|     /// <param name="process"></param>
 | |
|     /// <param name="subProcess"></param>
 | |
|     /// <param name="step"></param>
 | |
|     public void InvokeInitStepState(int systemId, int schemeId, int subProcessId)
 | |
|     {
 | |
|         StepState tmp=m_Steps.Find(a => a.systemId == systemId && a.schemeId == schemeId);
 | |
|         if (tmp != null)
 | |
|         {
 | |
|             Debug.Log("执行步骤状态设置跳步骤");
 | |
|             tmp.JumpStep(subProcessId);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 提交步骤完成状态
 | |
|     /// </summary>
 | |
|     /// <param name="process"></param>
 | |
|     /// <param name="subProcess"></param>
 | |
|     /// <param name="step"></param>
 | |
|     /// <param name="score"></param>
 | |
|     public void SubmitStepState()
 | |
|     {
 | |
| 
 | |
|     }
 | |
| }
 |