public void CreatScene(List <SceneState1> sceneState1s1, Mode mode) { if (mode != one_mode) { if (parent_scene.childCount != 0) { for (int i = 0; i < parent_scene.childCount; i++) { Destroy(parent_scene.GetChild(i).gameObject); } } for (int i = 0; i < sceneState1s1.Count; i++) { GameObject go = Instantiate(scene_prefab, parent_scene); string str = sceneState1s1[i].scene; SceneState1 sceneState1 = sceneState1s1[i]; //scene_dic.Add(go, sceneState1); go.GetComponent <SceneDeduce>().sceneState1 = sceneState1; go.GetComponent <SceneDeduce>().resetState1 = RedCastleControl.Instance.resetState1s[i]; go.GetComponent <SceneDeduce>().next_btn.GetComponent <Item>().name = sceneState1s1[i].phases[0].introduce; go.GetComponent <SceneDeduce>().Init(); } one_mode = mode; } }
/// <summary> /// 重置 /// </summary> public void Reset(GameObject go, SceneState1 sceneState1) { if (go.GetComponent <SceneDeduce>().num != 0) { if (sceneState1.scene == "飞跃") { UDPServer.Instance.SocketSendIP3("192.168.2.85", 6581, Dispose.strToToHexByte("EB BE 00 01 00 00 00 00 00 00 00")); UDPServer.Instance.SocketSendIP3("192.168.2.85", 6581, Dispose.strToToHexByte("EB BE 00 04 01 00 09 00 00 00 00")); } go.GetComponent <SceneDeduce>().num = 0; OneJudge(go, sceneState1); } }
/// <summary> /// 单场景演绎 /// </summary> /// <param name="go"></param> /// <param name="sceneState1"></param> public void OneJudge(GameObject go, SceneState1 sceneState1) { int num = go.GetComponent <SceneDeduce>().num; if (num > (sceneState1.phases.Count - 1)) { return; } for (int k = 0; k < sceneState1.phases[num].LightState.Count; k++) { LightStates lightStates = sceneState1.phases[num].LightState[k]; StartCoroutine(Play0nClick(lightStates)); } ///需要控制的播控盒列表 for (int k = 0; k < sceneState1.phases[num].MovieStates.Count; k++) { MovieStates movieStates = sceneState1.phases[num].MovieStates[k]; if (movieStates.movie_file == "0000") { StartCoroutine(BoxVolumeSub(movieStates, movieStates.isCycle)); } else { StartCoroutine(BoxVolumeAdd(movieStates, movieStates.isCycle)); if (movieStates.movie_ip == "192.168.2.234") { StartCoroutine(Baozha(24)); } } } float yizi = 0; ///需要控制的投影仪列表 for (int k = 0; k < sceneState1.phases[num].projectStates.Count; k++) { ProjectStates projectStates = sceneState1.phases[num].projectStates[k]; if (projectStates.project_name.Length > 3) { UDPServer.Instance.SocketSendIP3(projectStates.project_ip, 6581, strToToHexByte(projectStates.project_name)); yizi = 4.5f; } else { if (projectStates.project_name == "000") { UDPServer.Instance.SocketSendIP2(projectStates.project_ip, 3012, "PauseProject"); } else { UDPServer.Instance.SocketSendIP2(projectStates.project_ip, 3012, "PlayProject " + projectStates.project_name); } } } if (num < sceneState1.phases.Count - 1) { go.transform.Find("Next").GetComponent <Item>().name = sceneState1.phases[num + 1].introduce; } if (!sceneState1.phases[num].isStop) { go.GetComponent <SceneDeduce>().times = 0; if (yizi != 0) { go.GetComponent <SceneDeduce>().timer = yizi; } else { go.GetComponent <SceneDeduce>().timer = sceneState1.phases[num].time; } go.GetComponent <SceneDeduce>().isStop = true; } else { go.GetComponent <SceneDeduce>().times = 0; go.GetComponent <SceneDeduce>().isStop = false; } num++; go.GetComponent <SceneDeduce>().num = num; }