97 lines
3.8 KiB
C#
97 lines
3.8 KiB
C#
using CG.Framework;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
/*******************************************************************************
|
|
*Create By CG
|
|
*Function 零件说明 [部件认知]和[一键拆装]显示
|
|
*******************************************************************************/
|
|
namespace ZXK.GYJQR
|
|
{
|
|
public class PartExplainPanel : UIBase
|
|
{
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
|
|
}
|
|
private void OnEnable()
|
|
{
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.OnValueChanged += OnPartInfoChanged;
|
|
GameManager.Instance._DataBJCJHandler._CurYJCJhandler.OnValueChanged += OnPartInfoChanged;
|
|
}
|
|
private void OnDisable()
|
|
{
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.OnValueChanged -= OnPartInfoChanged;
|
|
GameManager.Instance._DataBJCJHandler._CurYJCJhandler.OnValueChanged -= OnPartInfoChanged;
|
|
}
|
|
/// <summary>
|
|
/// 实例化数据到说明栏
|
|
/// </summary>
|
|
/// <param name="partInfo"></param>
|
|
public void InitData(BJCJ_INFO partInfo)
|
|
{
|
|
SetText("PartName_N", partInfo.partName);
|
|
SetText("ExplainTxt_N", partInfo.explainTxt);
|
|
}
|
|
/// <summary>
|
|
/// 选中零件发生变化
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
private void OnPartInfoChanged(Dictionary<string, BJCJ_INFO> obj)
|
|
{
|
|
foreach (var item in obj)
|
|
{
|
|
if (item.Key.Equals(GameManager.Instance._DataBJCJHandler._ShowPartsName.Value))
|
|
{
|
|
WDebug.Log($"当前主题:{item.Key},零件ID:{item.Value.id}");
|
|
InitData(item.Value);
|
|
|
|
|
|
if (UI_Manage.Instance.GetPanel("FirstEnterTrainPanel")==null)
|
|
{
|
|
if (!string.IsNullOrEmpty(item.Value.sound))
|
|
{
|
|
string audioPath = System.IO.Path.Combine(Application.streamingAssetsPath, "Audios", GameManager.Instance._CurSystemType.ToString() + "Tips", item.Value.sound + ".mp3");
|
|
CG.UTility.UtilitiesMng.LoadAudio(audioPath, (AudioClip clip) =>
|
|
{
|
|
if (clip)
|
|
{
|
|
GetComponent<AudioSource>().clip = clip;
|
|
GetComponent<AudioSource>().Play();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
else
|
|
{
|
|
StartCoroutine(EnteredPlayAud(item.Value));
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private IEnumerator EnteredPlayAud(BJCJ_INFO itemInfo)
|
|
{
|
|
yield return new WaitForSeconds(0.5f);
|
|
FirstEnterTrainPanel firstGeo = CG.Framework.UI_Manage.Instance.GetPanel("FirstEnterTrainPanel").GetComponent<FirstEnterTrainPanel>();
|
|
firstGeo.EnteredEvent += () =>
|
|
{
|
|
if (!string.IsNullOrEmpty(itemInfo.sound))
|
|
{
|
|
string audioPath = System.IO.Path.Combine(Application.streamingAssetsPath, "Audios", GameManager.Instance._CurSystemType.ToString() + "Tips", itemInfo.sound + ".mp3");
|
|
CG.UTility.UtilitiesMng.LoadAudio(audioPath, (AudioClip clip) =>
|
|
{
|
|
if (clip)
|
|
{
|
|
GetComponent<AudioSource>().clip = clip;
|
|
GetComponent<AudioSource>().Play();
|
|
}
|
|
});
|
|
}
|
|
};
|
|
}
|
|
}
|
|
} |