Unityでデータ型Textでエラーが発生して修正した話(TextMeshProUGUIを使う)

テクノロジー・プログラミング プログラミング

発生したエラー

現在、こちらのサイトを参考にUnityでカードゲームの作り方の勉強をしています。

基本的に完全にコピペで作成していってるので、つまずくことは少ないのですが、一部、環境の違いでエラーが出てきています。その一部が表題の通り、データ型にTextを宣言したらエラーが発生する状態になっていました。

■ソースコードイメージ

ソースコードイメージ

■Consoleでエラー発生

エラー発生イメージ
参考:C#の変数宣言について 勉強中の身なので、覚えることも兼ねて備忘を。
C#の型番宣言では、[private int num = ]のように、アクセス修飾子 データ型 変数名という順番で変数を宣言します。
本記事で話題にしているText、TextMeshProUGUIはデータ型になりますので、[[SerializeField] Text nameText]のように二番目のところに記載します。
基本、Pythonしかやってきていない人間なので、アクセス修飾子とデータ型は慣れるまで時間がかかりそうです。

対応

もう表題に書いた通りなのですが、基本的にTEXTをTextMeshProUGUIに変えるだけです。
using TMPro;を入れるのを忘れずに。

■コード例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class CardView : MonoBehaviour
{
    [SerializeField] TextMeshProUGUI nameText, powerText, costText;
(以下、略)

これで動くようになりました。

■修正後のコンソール

修正後のコンソール

どうやらTextMeshProを使っているとこの対応が必要なようです。自分の場合、TextのデフォルトがTextMeshProだったので、最新のバージョンだとこの対応が必要なのかもしれません。

コメント

タイトルとURLをコピーしました