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