Это скриншот редактора:

Это скриншот сборки:

Как видите, имя статистики появляется, когда я запускаю его в редакторе, но когда я его создаю, оно не отображается в приложении. В чем может быть причина?
Ниже приведен скрипт для всплывающей подсказки на скриншоте.
using System.Text;
using UnityEngine.UI;
using CharacterStats;
using UnityEngine;
public class StatTooltip : MonoBehaviour
{
[SerializeField] Text StatNameText;
[SerializeField] Text StatModifierLabelText;
[SerializeField] Text StatModifiersText;
private StringBuilder sb = new StringBuilder();
public void ShowTooltip(CharacterStat stat, string statName)
{
StatNameText.text = GetStatTopText(stat, statName);
StatModifiersText.text = GetStatModifiersText(stat);
gameObject.SetActive(true);
}
public void HideTooltip()
{
gameObject.SetActive(false);
}
private string GetStatTopText(CharacterStat stat, string statName)
{
sb.Length = 0;
sb.Append(statName);
sb.Append(" ");
sb.Append(stat.Value);
sb.Append(" (");
sb.Append(stat.BaseValue);
if (stat.Value > stat.BaseValue)
sb.Append("+");
sb.Append(stat.Value - stat.BaseValue);
sb.Append(")");
return sb.ToString();
}
private string GetStatModifiersText(CharacterStat stat)
{
sb.Length = 0;
foreach (StatModifier mod in stat.StatModifiers)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
if (mod.Value > 0)
sb.Append("+");
sb.Append(mod.Value);
EquippableItem item = mod.Source as EquippableItem;
if(item != null)
{
sb.Append(" ");
sb.Append(item.ItemName);
}
else
{
Debug.LogError("Modifier is not an EquippableItem");
}
}
return sb.ToString();
}
}
statName правильно отображается в редакторе, но не в сборке.
using CharacterStats;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class StatDisplay : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
private CharacterStat _stat;
public CharacterStat Stat
{
get { return _stat; }
set
{
_stat = value;
UpdateStatValue();
}
}
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
nameText.text = _name;
}
}
[SerializeField] Text nameText;
[SerializeField] Text valueText;
[SerializeField] StatTooltip tooltip;
private void OnValidate()
{
Text[] texts = GetComponentsInChildren<Text>();
nameText = texts[0];
valueText = texts[1];
if (tooltip == null)
tooltip = FindObjectOfType<StatTooltip>();
}
public void OnPointerEnter(PointerEventData eventData)
{
tooltip.ShowTooltip(Stat, Name);
}
public void OnPointerExit(PointerEventData eventData)
{
tooltip.HideTooltip();
}
public void UpdateStatValue()
{
valueText.text = _stat.Value.ToString();
}
}