DialogueOptionWidget.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Linq;
  3. using Core.Language;
  4. using Excel2Json;
  5. using Fort23.UTool;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "DialogueOptionWidget")]
  11. public partial class DialogueOptionWidget : UIComponent
  12. {
  13. public EventConditionConfig eventConditionConfig;
  14. private Action<DialogueOptionWidget> callback;
  15. private void Init()
  16. {
  17. }
  18. public override void AddEvent()
  19. {
  20. }
  21. public override void DelEvent()
  22. {
  23. }
  24. public override void AddButtonEvent()
  25. {
  26. OptionWidget.onClick.AddListener(() => { callback?.Invoke(this); });
  27. }
  28. public void CustomInit(int id, int mainOpid, Action<DialogueOptionWidget> callback)
  29. {
  30. eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(id);
  31. var mainEventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(mainOpid);
  32. int index = mainEventConditionConfig.optionPara1.ToList().IndexOf(eventConditionConfig.ID);
  33. Text_desc.text = LanguageManager.Instance.Text(mainEventConditionConfig.optionPara2[index]);
  34. this.callback = callback;
  35. LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent<RectTransform>());
  36. LayoutRebuilder.ForceRebuildLayoutImmediate(transform);
  37. }
  38. }
  39. }