ゲーム制作

The type or namespace name 'UxmlNamespacePrefixAttribute' could not be foundの対策

Top Downビューのゲームの勉強をしようと思い、「Bolt Kit: Top Down for Unity」をインポートしてみました。さっそく動かしてみようとしてみたのですが、エラーで全く動かないということで、出鼻をくじかれましたね。

エラーの数が1個や2個なら良いんですけど、100個以上もあるとねぇ・・・。無料だから文句は言えないんだけど、それでも「えー・・・。もうええわ」と投げ出してしまいたくなります。

無理にこのキットを使わなくていいので、別のテンプレートで勉強しようと思って、別のテンプレートを試すも、同じような状況に陥りました。

こうなると、おそらく環境的な問題で今後も付きまとってくるだろうと思ったので、ちょっと本腰入れて対応していこうと思いました。

 

というわけで、同じように苦しんでいる人がいると思い、きっと誰かの参考にはなる!ということで、この記事ではタイトルのようなエラーの対策を行ったときの記事について記します。

 

The type or namespace name 'UxmlNamespacePrefixAttribute' could not be foundの対策をすれば万事解決したって話

実は100個以上エラーがあったのですが、「The type or namespace name 'UxmlNamespacePrefixAttribute' could not be found(are you missing a using directive or an assembly reference?)」のエラーを解消したら、他もすべて同時に解決しました。

他のエラーというのは次のようなエラーです。

  • The type or namespace name 'xxx' could not be found (are you missing a using directive or an assembly reference?)
  • The type or namespace name 'yyy' does not exist in the namespace 'zzz'(are you missing an assembly reference?)
  • The non-generic type 'nnn' cannot be used with type arguments.

xxxにはクラス名が入ります。例えば次のようなクラスです。

  • UxmlNamespacePrefixAttribute
  • Button
  • VisualElement
  • Label
  • IUxmlAttributes

yyyにはクラス名、zzzにはパッケージ名が入ります。例えば次のようなクラスとパッケージ名です。

xxx yyy
UIElements UnityEngine.Experimental

nnnにはクラス名が入ります。例えば次のようなクラスです。

  • Alert.UxmlFactory
  • LoadingSpinner.UxmlFactory

 

こんな感じのエラーがずらっと並んでいました。「これ全部対策すんのか・・・」と思ってたのですが、先ほども書いたように、1つ対策したら全部解消されました。要は根本原因は1つだったわけですね。

じゃあ、何が原因かというと「package-manager-uiがバグってた」というのが原因になります。どうバクっていたか、なぜバグっていたかは不明ですが、package-manager-uiを更新したらキレイさっぱりエラーが消えました。

 

package-manager-uiの更新方法

肝心のpackage-manager-uiの更新方法を説明します。(図は一部修正しています。)

[Windows] - [Package Manager]を開きます。

The type or namespace name 'UxmlNamespacePrefixAttribute' could not be foundの対策

 

検索窓で「package」と入力します。

 

[Package Manager UI」の横の▼ボタンをクリックして、最新のバージョンを選択し、「Update to x.x.x」をクリックします。

 

あとは更新を待てば手順としてはOKです。

更新されたか確認しようと思ったのですが、Package Manager UIは更新したら消えました。

こちらの記事では「削除したよ」と書いているので、もしかしたら更新じゃなくて、削除してもよかったかもしれません。私の場合は、「削除するなら、一度更新してみて様子を見よう」と思い更新したら、結果的には削除された感じになりましたね。

 

結局諦めたら負けということ

「The type or namespace name 'UxmlNamespacePrefixAttribute' could not be foundの対策」と題しましたが、ここに記載したエラーも同様に対策されました。

今考えると、アセットストアで公開されてて、それなりに評価のいいアセットがエラーだらけというのはおかしな話なので、諦めずに対策すれば案外簡単に解決するものです。

特に環境系のエラーは1つ解決すればOKみないなのは結構あるので。

皆さんもエラーの多さには負けず、「とりあえず1個だけ」というぐらいの気持ちで取り組めば、すんなりいくかもしれません。

 

 

-ゲーム制作