Я следую руководству по разделу навыков о том, как создать карточную игру, и в учебнике используется обычный текст единства, но для меня текст получается размытым. Поэтому я обратился к использованию TextMeshPro для этого, потому что текст поддерживает автоматическое изменение размера и четкий.

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

// holds the refs to all the Text, Images on the card
public class OneCardManager : MonoBehaviour {

    public CardAsset cardAsset;
    public OneCardManager PreviewManager;
    [Header("Text Component References")]
    public Text ManaCostText;
    public Text PowerText;
    [Header("Image References")]
    public Image CardBodyImage;
    public Image CardFaceGlowImage;
    public Image CardBackGlowImage;

    void Awake()
    {
        if (cardAsset != null)
            ReadCardFromAsset();
    }

    private bool canBePlayedNow = false;
    public bool CanBePlayedNow
    {
        get
        {
            return canBePlayedNow;
        }

        set
        {
            canBePlayedNow = value;

            CardFaceGlowImage.enabled = value;
        }
    }

    public void ReadCardFromAsset()
    {
        // universal actions for any Card

        // add mana cost
        ManaCostText.text = cardAsset.ManaCost.ToString();

        if (cardAsset.Power != 0)
        {
            // this is a creature
            PowerText.text = cardAsset.Power.ToString();
        }

        if (PreviewManager != null)
        {
            // this is a card and not a preview
            // Preview GameObject will have OneCardManager as well, but PreviewManager should be null there
            PreviewManager.cardAsset = cardAsset;
            PreviewManager.ReadCardFromAsset();
        }
    }
}

Текст маны должен иметь возможность принимать объект TMP, но я не знаю, как это сделать. Помогите, пожалуйста!

0
Lumbr 18 Июн 2020 в 16:24

1 ответ

Лучший ответ

Используйте TMPro.TMP_Text вместо UnityEngine.UI.Text.

0
Iggy 18 Июн 2020 в 13:40