質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

13295閲覧

are you missing an assembly reference? を解消したい

rmms

総合スコア1

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/07/24 15:48

編集2020/07/24 16:44

エラー内容

Assets/Abc/Scripts/UI/Field/Renderer.cs(9,54): error CS0234: The type or namespace name 'Base' does not exist in the namespace 'Abc.UI.Character' (are you missing an assembly reference?)

ディレクトリ構成

Assets └─Abc  └─Scripts   └─UI     └┬Field    │ └─Renderer.cs    └Character    └─Base.cs

ファイル内容

Assets/Abc/Scripts/UI/Field/Renderer.cs

using UnityEngine; namespace Abc.UI.Field { public class Renderer : MonoBehaviour { private void Awake() { Character.Base character = new Character.Base(); character.Load("Hiro"); } } }

Assets/Abc/Scripts/UI/Character/Base.cs

using UnityEngine; namespace Abc.UI.Character { public class Base : MonoBehaviour { public GameObject Load(string name) { var prefab = Resources.Load<GameObject>($"Prefabs/Character/{name}/{name}"); return Instantiate(prefab); } } }

質問の意図

Assembly ファイルが必要なのはわかりますが、ディレクトリを新しく生やす度に宣言するものなのかわかっていません。

バージョンなど

Unity 2020.2.0a18.2359 (stable ではなく意図的に aplha 版を利用しています)

質問に対する返答

  • 正式リリースされた Unity でも同じ問題が発生するのか

 → 私の手元では、Unity 2019.4 でも再現しました。

  • このエラーはどこに出力されるのか。Unity の Console か。Visual Studio の方だけか。

 → Unity Console / Visual Studio の双方で出ます。

Unity 2019.4 では問題は起きませんね。

 これを確認できただけでも自身の環境に問題がありそうなことがわかったので助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bboydaisuke

2020/07/24 15:54

以下の追記をお願いします。 - 正式リリースされた Unity でも同じ問題が発生するのか - このエラーはどこに出力されるのか。Unity の Console か。Visual Studio の方だけか。
bboydaisuke

2020/07/24 16:00

Unity 2019.4 では問題は起きませんね。Renderer とか Base とか既に使われている名前なのでややこしいですが、それ自体は実行不可能になるような問題ではありません。
rmms

2020/07/24 16:31

- 正式リリースされた Unity でも同じ問題が発生するのか  → 私の手元では、Unity 2019.4 でも再現しました。 - このエラーはどこに出力されるのか。Unity の Console か。Visual Studio の方だけか。  → Unity Console / Visual Studio の双方で出ます。 > Unity 2019.4 では問題は起きませんね。  ありがとうございます。これを確認できただけでも自身の環境に問題がありそうなことがわかったので助かります。
bboydaisuke

2020/07/24 16:38

ここは「質問への追記・修正」依頼の欄でデフォルト非表示なので、ここに追記してもあまり読んでもらえないと思いますよ。質問の方に書かないと。
rmms

2020/07/24 16:43

ご指摘ありがとうございます。 質問の方へ追記・修正するようにします。
guest

回答2

0

ベストアンサー

追記修正依頼は書きましたので、現在ある情報のみで答えます。

Visual Studio の Unity 用セットアップ を見て、Visual Studio が Unity 用にセットアップできているか確かめてください。されていなかったら、Visual Studio のアドオンを追加インストールして、Unity の External Script Editor に Visual Studio を明示的に指定したら、問題は解決すると思います。

【追記】

Class View にその namespace やクラスが表示されていればそれらは使えます。

イメージ説明

もしも表示されない場合は Project ウインドウでそのスクリプト コンポーネントを右クリック > Reimport を選んで再コンパイルするとか、Visual Studio を閉じて Assets メニュー > Open C# Project を選んで "Unity 用の C# プロジェクトを作る" (←これが Unity 用の Visual Studio セットアップをしていないとできない)とかすればいろんなものを作り直してくれます。

最初から VS 等がセットアップされていれば問題は起きませんが、プロジェクトを作ってから VS をセットアップしたりとかした場合は、作り直したりする必要がある時があります。

投稿2020/07/24 16:03

編集2020/07/24 16:55
bboydaisuke

総合スコア5275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rmms

2020/07/24 16:33

上記を確認しました。 - Visual Studio が Unity 用にセットアップできている - Unity の External Script Editor に Visual Studio を明示指定している そのため、問題はまだ解決できていません。 コメントくださったところすみません。
rmms

2020/07/24 16:57

追記ありがとうございます。 まさしく Reimport していなかったため、再コンパイルができていなかったものと思われます。 丁寧な回答ありがとうございました。
guest

0

新しく Visual Studio からファイルを作成した場合、アセンブリファイルを追加してクラスを作成すると出たため、その手順でやるとエラーなく対応できました(問題自体は自己解決しました)

今回エラーが出た手順は Unity Editor の UI 上からファイルを作成し、ファイル名やクラス名を変更する方法だとうまくいきませんでした。
これはこの方法だと自動で適切なアセンブリファイルが生成されていないためうまく参照できないという解釈で正しいのでしょうか?

Assembly-CSharp.csproj に自動で書き込まれるとかそういうことでしょうか?

基本的なことを知っておらずすみませんが、ご助言いただけると助かります。

投稿2020/07/24 16:49

rmms

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問