_xiaofang/xiaofang/Assets/yhj/scripts/JueseChoicePop.cs
2024-12-27 11:53:50 +08:00

131 lines
4.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.Assertions.Must;
using UnityEngine.Networking.Types;
using UnityEngine.UI;
public class JueseChoicePop : MonoBehaviour
{
public ClassMate classMate;
public ClassItem classItem;
public Button CloseBtn;
public Button Surebtn;
public GameObject classmatePrefab;
public Transform content;
public List<ClassMate> classMateList = new List<ClassMate> ();
// 存储已实例化的 GameObject 列表
private List<GameObject> instantiatedObjects = new List<GameObject>();
public string s;
public JSONReader jsonReader;
public Panel panel;
public WarningPopPanel WarningPopPanel;
//Start is called before the first frame update
void Start()
{
this.gameObject.SetActive(false);
CloseBtn.onClick.AddListener(CLosePop);
Surebtn.onClick.AddListener(CLosePop);
//Surebtn.onClick.AddListener(SetFenguan);
//SetClass();
}
void Update()
{
}
void CLosePop()
{
ClearAll();
this.gameObject.SetActive(false);
}
public void openPop()
{
this.gameObject.SetActive(true);
}
void SetFenguan()
{
//设置此区分的分管人员为用户选中的角色,并刷新界面信息
classItem.isSet = true;
//classItem.setClassItem();
}
//加载分管人员
public void SetClass()
{
//if (instantiatedObjects.Any(obj => obj.GetComponent<ClassMate>().id == id))
//{
// Debug.Log($"这个: {id} 已经被实例化.");
// return; // 如果已实例化,跳过
//}
//foreach (Transform child in content)
//{
// Destroy(child.gameObject);
//}
foreach(var all in panel.sceneDataDictionary)
{
foreach (var info in all.Value)
{
Debug.LogError("-------------------------"+ info.sceneId);
LocationData locationData = jsonReader.GetAreaDateById(int.Parse(info.sceneId));
if (locationData.Oversee == "-1")
{
Debug.Log($"Skipping ID{info.sceneId}: Oversee is -1.");
continue; // 跳过
}
string[] overseeParts = locationData.Oversee.Split(',');
string firstElement = overseeParts[0];
string lastElement = overseeParts[1];
if (overseeParts.Length > 0)
{
if(firstElement==info.dutyId&&lastElement=="1")
{
GameObject item = GameObject.Instantiate(classmatePrefab, content);
ClassMate classMate = item.GetComponent<ClassMate>();
Button button = item.GetComponent<Button>();
button.onClick.AddListener(() =>
{
// SetClassMate(classMate, scnenName);
});
classMate.name = info.name;
classMate.classmatename.text = classMate.name;
//classMate.id = info.dutyId;
instantiatedObjects.Add(item);
}
}
}
}
if(panel.sceneDataDictionary.Count==0)
{
WarningPopPanel.OpenPanel("请先添加对应的应急人员配置");
}
}
//点击人员后设置位置的方法
public void SetClassMate(ClassMate classMate, string a = "")
{
this.classMate = classMate;
this.classMate.classmatename.text = classMate.name + "(" + a + ")";
classMate.isBeSet = false;
}
public void SetClassItem(ClassItem classItem)
{
this.classItem = classItem;
}
//关闭界面的时候删除子物体
public void ClearAll()
{
foreach(Transform child in content)
{
Destroy(child.gameObject);
}
}
}