using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; using UnityEngine.SceneManagement; using static InterfaceManager; using static LoginSceneUIManager; using System.IO; using Newtonsoft.Json; using TMPro; using System.Linq; /// /// 自由编程面板 /// public class FreeProgrammingPanel : PanelBasic { /// /// 进入场景按钮 /// public Button enter_scene_button; /// /// 当前场景名称 /// public TextMeshProUGUI scene_name_text; /// /// 实例化节点 /// public Transform instantiate_root; /// /// 预制体 /// public FreeSceneItem free_scene_item_prefab; /// /// 实例化的所有场景对象 /// public List free_scene_items = new List(); /// /// 当前组件的场景对象 /// public List current_component_scene_items = new List(); /// /// 场景名称 /// public ClockScrolling scene_name_clock_scrolling; /// /// 计时器 /// // private float timer; /// /// 虚化效果 /// public bool weakening_state; /// /// 显示图片 /// public Sprite[] Picture; protected override void Awake() { base.Awake(); } // Start is called before the first frame update void Start() { Init(); } private void Update() { // timer += Time.deltaTime; // if (timer >= 3f) // { if (!weakening_state) { weakening_state = true; if (Current != Next && Current != Last) { // current_component_scene_items[Last].SetWeakening(); // current_component_scene_items[Next].SetWeakening(); foreach (FreeSceneItem n in current_component_scene_items) { if (current_component_scene_items[Next] != n) { n.显示变大图标(); } else { n.缩回原来的图标(); } n.GetComponent().enabled = false; } // current_component_scene_items[Last].显示变大图标(); // current_component_scene_items[Next].显示变大图标(); } } // } } int Current = 0; int Last => Current == 0 ? current_component_scene_items.Count - 1 : Current - 1; int Next => Current == current_component_scene_items.Count - 1 ? 0 : Current + 1; void Init() { free_scene_item_prefab ??= Resources.Load("Prefabs/UIItem/FreeSceneItem"); //读取场景配置文件 StartCoroutine(Get(Path.Combine(Application.streamingAssetsPath, "LocalConfig/FreeScene.txt"), false, OnFreeDataUpdated)); enter_scene_button.onClick.AddListener(() => { if (SceneManager.GetSceneByName(current_preselect_scene) != null) { GameManager.current_main_menu_type = MainMenuType.自由编程; loading_panel.OnActive(this); } }); } void OnFreeDataUpdated(string _data) { var _free_scene_item_datas = JsonConvert.DeserializeObject(_data); for (int i = 0; i < _free_scene_item_datas.Length; i++) { var _free_scene_item = Instantiate(free_scene_item_prefab, instantiate_root); _free_scene_item.Init(_free_scene_item_datas[i]); _free_scene_item.name = i.ToString(); free_scene_items.Add(_free_scene_item); if (_free_scene_item.free_scene_item_data.scene_type == GameManager.current_component_type.ToString()) { current_component_scene_items.Add(_free_scene_item); } else _free_scene_item.SetActiveManual(false); } GameManager.scene_detail_datas = _free_scene_item_datas.ToList(); //自己添加的场景按钮功能 Debug.Log(current_component_scene_items.Count); free_scene_items[0].transform.GetChild(1).GetComponent