Unityでテキストオブジェクトとアウトレット接続しようとしたら上手くいかなかった時のメモ。
※Unityのバージョンは「2021.3.7f1」です。
アウトレット接続ができない
UnityでInput Systemを使ったゲームパッドの入力状態を得るスクリプトを作る際、入力状態を表示する用のテキストを追加。先述のスクリプトをEvent Systemにとりあえず割り当てて結果表示用テキストをアウトレット接続しようとしたら…
なんと禁止マークが出てドラッグ&ドロップができず、アウトレット接続ができなかった。
検索をかけるとInspector内で変数が表示されていないとかアウトレット接続するとエラーが出る場合はたくさん出てくるが上の場合は見当たらずしばらく躓いてしまった。
なんとか解決できたのだが古い情報を元に作っていたのが元凶だった。同じミスで時間をつぶさないように以下にメモ。
Text “Mesh Pro”だったから
テキストオブジェクトとアウトレット接続できなかった理由はText “Mesh Pro”を使っていたのが原因。
以前はuGUIのテキストが標準だったが後にText Mesh Proが登場、最近のバージョンではuGUIの方は姿を消しText Mesh Proに変わっている。改めて参考にしたページを確認してみると全部以前のuGUIを使用していたので古い情報をそのまま鵜呑みにしてしまったようだ。当然ながら仕様が違うのできちんと合わせてあげる必要がある。
Text Mesh Proを扱う場合はまず以下のコードを追加する。
using TMPro;
そして以下のようにフィールドを宣言する。
[SerializeField] private TMP_Text TextObject;
あるいは以下のように宣言する。
public TMP_Text TextObject;
これでテキストオブジェクトとアウトレット接続ができるようになる。
Unity使ってる人多いし常に最新情報が溢れているだろうと思ったらとんでもない。これからはページの投稿日時を確認した方がよさそうだ。
コメント