131 lines
4.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|