unityzgy/Assets/Scripts/UIScripts/Teacher/SubjectEditorBase.cs

107 lines
3.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using XFramework;
public class SubjectEditorBase : BasePanel
{
public Dropdown dropdown_Terrain;
public Text subName;
public Image image_Map;
public Button button_Save;
public Button button_finish;
public InputField input_TaskIntr;
public InputField input_FileIntr;
private string subNameKey;
public SubjectEditorBase(string panelName) : base(new UIType(panelName))
{
}
protected override void InitEvent()
{
dropdown_Terrain = ActivePanel.FindChildTrans("Dropdown_terrain").GetComponent<Dropdown>();
subName = ActivePanel.FindChildTrans("Text_subName").GetComponent<Text>();
image_Map = ActivePanel.FindChildTrans("Image_map").GetComponent<Image>();
button_Save = ActivePanel.Find("Button_save").GetComponent<Button>();
button_finish = ActivePanel.Find("Button_finish").GetComponent<Button>();
input_TaskIntr = ActivePanel.Find("InputField_renwujianjie").GetComponent<InputField>();
input_FileIntr = ActivePanel.Find("InputField_renwujianjie (1)").GetComponent<InputField>();
string[] terrainNames = DBManager.Instance.GetABNames(ABType.);
dropdown_Terrain.options.Clear();
for (int i = 0; i < terrainNames.Length; i++)
{
dropdown_Terrain.options.Add(new Dropdown.OptionData(terrainNames[i]));
}
dropdown_Terrain.value = 0;
TerrainChange(0);
dropdown_Terrain.onValueChanged.AddListener(TerrainChange);
button_Save?.onClick.AddListener(SaveFile);
button_finish?.onClick.AddListener(FinishEditor);
LocalizationManager.LanguageChanged += OnLanguageChanged;
}
private void OnLanguageChanged()
{
if (subName != null && !string.IsNullOrEmpty(subNameKey))
subName.text = LocalizationManager.Get(subNameKey);
// Refresh dropdown options with localized terrain names
if (dropdown_Terrain != null)
{
string[] terrainNames = DBManager.Instance.GetABNames(ABType.);
for (int i = 0; i < terrainNames.Length && i < dropdown_Terrain.options.Count; i++)
{
dropdown_Terrain.options[i].text = LocalizationManager.Get(terrainNames[i]);
}
dropdown_Terrain.RefreshShownValue();
}
}
void ShowTerrainMap(Sprite texture)
{
image_Map.sprite = texture;
image_Map.SetNativeSize();
image_Map.GetComponent<MyDragMap>()?.InitSize();
}
/// <summary>
/// 结束编辑
/// </summary>
protected void FinishEditor()
{
Pop();
}
public void SetSubName(string subNameStr)
{
subNameKey = subNameStr;
subName.text = LocalizationManager.Get(subNameStr);
}
async void TerrainChange(int terrainIndex)
{
Sprite sprite = await OutSpriteLoader.LoadSprite(StreamingAssetsManager.GetPath($"{dropdown_Terrain.options[terrainIndex].text}_Map"));
ShowTerrainMap(sprite);
}
public virtual void SaveFile()
{
}
public override void OnDestroy(bool isDestroy = false)
{
base.OnDestroy(isDestroy);
LocalizationManager.LanguageChanged -= OnLanguageChanged;
input_TaskIntr.text = "";
input_FileIntr.text = "";
}
}