This commit is contained in:
huyulong 2024-12-06 11:52:21 +08:00
commit 83353b4aeb
3 changed files with 78 additions and 106 deletions

View File

@ -1,16 +1,16 @@
[ [
{ {
"ID": 5001, "ID": "5001",
"Note": "火灾", "Note": "火灾",
"Name": 5001, "Name": "5001",
"Role": "8000|8001|8002|8003|8004|8005|8006|8008|8009|8010", "Role": "8000|8001|8002|8003|8004|8005|8006|8008|8009|8010",
"DisasterLocation": "2001|2002|2003" "DisasterLocation": "2001"
}, },
{ {
"ID": 5002, "ID": "5002",
"Note": "塌方", "Note": "塌方",
"Name": 5002, "Name": "5002",
"Role": "8000|8001|8002|8003|8004|8005|8006|8008|8009|8010", "Role": "8000|8001|8002|8003|8004|8005|8006|8008|8009|8010",
"DisasterLocation": 2004 "DisasterLocation": "2004|2002"
} }
] ]

View File

@ -241,13 +241,22 @@ public class JSONReader : MonoBehaviour
else return null; else return null;
} }
public IncidentSite GetIncidentSiteById(int id)
{
IncidentSite info = null;
if (incidentSiteDictionary.TryGetValue(id, out info))
{
return info;
}
else return null;
}
//设置UI文本的方法 //设置UI文本的方法
public void SetUIText(Text text, int id) public void SetUIText(Text text, int id)
{ {
Language languageinfo = GetLanguageByID(id); Language languageinfo = GetLanguageByID(id);
text.text = languageinfo.Text; text.text = languageinfo.Text;
} }
} }
// 帮助类,用于解析 JSON 数组 // 帮助类,用于解析 JSON 数组

View File

@ -44,15 +44,16 @@ public class SelectScenePanel : MonoBehaviour
public ToggleGroup toggleGroup; public ToggleGroup toggleGroup;
[Header("数据")] [Header("数据")]
public DatePanel datePanel; public DatePanel datePanel;
public int schoolId; public Panel panel;
public string schoolName; public int schoolId { get; set; }
public int scnenId; public string schoolName { get; set; }
public string sceneName; public int scnenId { get; set; }
public int eventId; public string sceneName { get; set; }
public string eventName; public int eventId { get; set; }
public string difficulty; public string eventName { get; set; }
public string isBuy; public string difficulty { get; set; }
public bool isSure;//判断是否点击了提交按钮 public string isBuy { get; set; }
public bool isSure { get; set; }//判断是否点击了提交按钮
public JSONReader jsonReader; public JSONReader jsonReader;
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
@ -74,10 +75,6 @@ public class SelectScenePanel : MonoBehaviour
void Update() void Update()
{ {
IsClick(); IsClick();
if(Input.GetKeyDown(KeyCode.A))
{
SelectEvnentBtn();
}
} }
//动态加载场景选择预制体 //动态加载场景选择预制体
@ -85,7 +82,6 @@ public class SelectScenePanel : MonoBehaviour
{ {
foreach (var sceneData in jsonReader.sceneDictionary) foreach (var sceneData in jsonReader.sceneDictionary)
{ {
Debug.Log("iiiiiiiiiiiiiii");
GameObject slot = GameObject.Instantiate<GameObject>(scenePrefab, sceneList); GameObject slot = GameObject.Instantiate<GameObject>(scenePrefab, sceneList);
SceneItem item = slot.GetComponent<SceneItem>(); SceneItem item = slot.GetComponent<SceneItem>();
switch (sceneData.Value.Type) switch (sceneData.Value.Type)
@ -147,34 +143,6 @@ public class SelectScenePanel : MonoBehaviour
} }
} }
//动态加载事件图标预制体(当选完了场景类型之后再调用)
public void InstantiateEventPrefab()
{
foreach (var sceneData in jsonReader.eventDictionary)
{
GameObject slot = GameObject.Instantiate<GameObject>(eventPrefab, eventList);
EventInfo item = slot.GetComponent<EventInfo>();
item.eventId = sceneData.Value.ID;
item.eventName.text = sceneData.Value.Note;
if (item.IsOpen)
{
item.maskImage.gameObject.SetActive(false);
}
else
{
item.maskImage.gameObject.SetActive(true);
}
Toggle toggle = slot.GetComponent<Toggle>();
if (toggle != null)
{
toggle.group = eventGroup;
evnetsceneList.Add(toggle); // 使用 Add() 方法添加 Toggle 元素
eventInfoList.Add(item);
}
}
}
//动态加载事件选择预制体 //动态加载事件选择预制体
public void InstantiateIncidentPrefab(int eventId) public void InstantiateIncidentPrefab(int eventId)
{ {
@ -182,6 +150,7 @@ public class SelectScenePanel : MonoBehaviour
{ {
if (eventData.Key == eventId) if (eventData.Key == eventId)
{ {
Debug.Log("<<<<<<<<<<<<<<<<<eventId" + eventData.Key);
GameObject slot = GameObject.Instantiate<GameObject>(incidentPrefab, incidentList); GameObject slot = GameObject.Instantiate<GameObject>(incidentPrefab, incidentList);
IncidentInfo item = slot.GetComponent<IncidentInfo>(); IncidentInfo item = slot.GetComponent<IncidentInfo>();
item.incidentText.text = eventData.Value.Note; item.incidentText.text = eventData.Value.Note;
@ -216,38 +185,56 @@ public class SelectScenePanel : MonoBehaviour
// 遍历每个分隔出来的 id // 遍历每个分隔出来的 id
foreach (string incidentIdStr in incidentIds) foreach (string incidentIdStr in incidentIds)
{ {
Debug.Log("incidentIdStr" + incidentIdStr);
// 转换字符串为 int 类型 // 转换字符串为 int 类型
if (int.TryParse(incidentIdStr, out int incidentId)) if (int.TryParse(incidentIdStr, out int incidentId))
{ {
// 根据 incidentId 获取对应的事件数据 // 根据 incidentId 获取对应的事件数据
if (jsonReader.eventDictionary.TryGetValue(incidentId, out var eventData)) EventData eventData=jsonReader.GetEvenById(incidentId);
Debug.Log("eventData.ID:" + eventData.ID);
Debug.Log("eventData.DisasterLocation:" + eventData.DisasterLocation);
string[] incidentIds2 = eventData.DisasterLocation.Split('|');
GameObject slot = GameObject.Instantiate<GameObject>(eventPrefab, eventList);
EventInfo item = slot.GetComponent<EventInfo>();
item.eventId = eventData.ID;
item.eventName.text = eventData.Note;
if (item.IsOpen)
{ {
// 你可以继续处理相关逻辑,比如创建 UI 或设置属性等 item.maskImage.gameObject.SetActive(false);
GameObject slot = GameObject.Instantiate<GameObject>(eventPrefab, eventList);
EventInfo item = slot.GetComponent<EventInfo>();
item.eventId = eventData.ID;
item.eventName.text = eventData.Note;
if (item.IsOpen)
{
item.maskImage.gameObject.SetActive(false);
}
else
{
item.maskImage.gameObject.SetActive(true);
}
Toggle toggle = slot.GetComponent<Toggle>();
if (toggle != null)
{
toggle.group = sceneGroup;
eventInfoList.Add(item);
}
} }
else else
{ {
Debug.LogWarning($"No event found for Incident ID {incidentId}"); item.maskImage.gameObject.SetActive(true);
} }
Toggle toggle = slot.GetComponent<Toggle>();
if (toggle != null)
{
toggle.group = sceneGroup;
eventInfoList.Add(item);
}
toggle.onValueChanged.AddListener((isSelected) =>
{
if (isSelected) // 只有当Toggle被选中时才调用SelectEventBtn
{
// 清空事件列表
incidentInfos.Clear();
foreach (Transform child in incidentList)
{
Destroy(child.gameObject);
}
this.eventName = item.eventName.text; // 获取 Text 组件的文本
this.eventId = item.eventId;
EventData eventData = jsonReader.GetEvenById(this.eventId);
foreach (string disasterLocation in incidentIds2)
{
Debug.Log("disasterLocation>>>>>>>"+ disasterLocation);
InstantiateIncidentPrefab(int.Parse(disasterLocation));
}
createTemplateInfo.Instance.auth_CreateTemplate.sceneId = item.eventId.ToString();
}
});
} }
else else
{ {
@ -294,36 +281,11 @@ public class SelectScenePanel : MonoBehaviour
this.sceneName = item.sceneName.text; // 获取 Text 组件的文本 this.sceneName = item.sceneName.text; // 获取 Text 组件的文本
this.scnenId = item.sceneId; this.scnenId = item.sceneId;
Debug.Log("------------this.scnenId:" + this.scnenId); Debug.Log("------------this.scnenId:" + this.scnenId);
createTemplateInfo.Instance.auth_CreateTemplate.sceneId = item.sceneId.ToString(); createTemplateInfo.Instance.auth_CreateTemplate.sceneId = item.sceneId.ToString();
sceneSelected = true; sceneSelected = true;
break; // 找到选中的场景后退出循环 break; // 找到选中的场景后退出循环
} }
} }
Debug.Log("---------------" + this.scnenId);
Debug.Log("###############3:" + this.schoolId);
}
//事件选择
public void SelectEvnentBtn()
{
bool eventSelected = false; // 检查是否有场景被选择
foreach (EventInfo item in eventInfoList)
{
// 检查当前的 Toggle 是否被选中
if (item.gameObject.transform.GetComponent<Toggle>().isOn)
{
// 设置场景名称
this.eventName = item.eventName.text; // 获取 Text 组件的文本
this.eventId = item.eventId;
EventData eventData = jsonReader.GetEvenById(this.eventId);
InstantiateIncidentPrefab(2001);
createTemplateInfo.Instance.auth_CreateTemplate.sceneId = item.eventId.ToString();
Debug.Log(this.eventName);
eventSelected = true;
break; // 找到选中的场景后退出循环
}
}
} }
//事件及难度选择 //事件及难度选择
@ -422,6 +384,7 @@ public class SelectScenePanel : MonoBehaviour
//SelectEvnentBtn(); //SelectEvnentBtn();
SetDataPanelInfo(); SetDataPanelInfo();
this.gameObject.SetActive(false); this.gameObject.SetActive(false);
panel.gameObject.SetActive(true);
} }
//关闭按钮 //关闭按钮
@ -437,7 +400,7 @@ public class SelectScenePanel : MonoBehaviour
} }
// 如果需要,也可以清空其他相关信息 // 如果需要,也可以清空其他相关信息
eventToggleList.Clear(); evnetsceneList.Clear();
eventId = -1; eventId = -1;
eventName = string.Empty; eventName = string.Empty;
if (schoolChoiceLable.gameObject.active == false) if (schoolChoiceLable.gameObject.active == false)