徹夜あけでアホになっていたとはいえ紛らわしかったのでメモ
ことの経緯
スクリプトでカウントした回数をゲーム内で表示するようにしたかったので,その辺で転がっているチュートリアル記事を見ながらこんな感じのコードを書いた.
public class Controller : MonoBehaviour
{
public TextMeshProUGUI countText;
//うんたら
}
が,インスペクタのCount Textにヒエラルキーで作ったText(TMP)をアサインしたかったが弾かれてしまう.

で,散々調べてもよくわからなかったのでこの日は諦めて寝たのだけど,次の日に原因を理解.
原因
3D ObjectのTextMeshPro と UIのTextMeshPro を混同していたことが原因だった.
右クリック > 3D Object > Text - TextMeshProで作ったText(TMP)を見ると,TextMeshPro - TextコンポーネントとTextMeshPro Meshコンポーネントがあるのに対し,

右クリック > UI > Text - TextMeshProで作ったText(TMP)にはTextMeshPro - Text(UI)コンポーネントのみついている.

つまり,コード上でUIのTextMeshProを宣言しているのに,3D ObjectのTextMeshProをアサインしようとしていたから弾かれていたということ.
解決法
そういうわけで型を揃えてやれば問題なくアサインできた.
public class Controller : MonoBehaviour
{
public TextMeshPro countText;
//うんたら
}
コードではTextMeshProUGUIのままオブジェクトを作り直してもいいはず.
アサインできなかったら最初に疑うのは型間違いだろうけど,初心者にはめちゃ紛らわしかったです.
徹夜は注意散漫になるのでなるべくやめましょう.
