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

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

新規登録して質問してみよう
ただいま回答率
85.33%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

Q&A

1回答

476閲覧

UniTaskのCysharpが見つかりません

fieldmountain8

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

2グッド

1クリップ

投稿2025/01/22 09:52

編集2025/01/23 05:51

実現したいこと

UniTaskが正常に動作するようになる

発生している問題・分からないこと

VisualStudioでネット上に記載されているテンプレートをそのままコピペして実行しようとしたが、「Cysharp」と「UniTask」の二箇所でエラーが発生しています

エラーメッセージ

error

1CS0246 型または名前空間の名前 'Cysharp' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) 2 3CS0246 型または名前空間の名前 'UniTask' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) 4

該当のソースコード

C#

1using Cysharp.Threading.Tasks; 2using UnityEngine; 3 4public class Sample : MonoBehaviour 5{ 6 private async void Start() 7 { 8 Debug.Log("処理開始"); 9 await SampleAsync(); 10 Debug.Log("処理終了"); 11 } 12 13 private async UniTask SampleAsync() 14 { 15 await UniTask.Delay(1000); // 1秒待機 16 Debug.Log("1秒経過"); 17 } 18}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Cysharp、UniTaskに関するエラーの記述がほとんどなく進行不可という状態です

・Unity,UnityHubの再起動
・Unity,UnityHubの再インストール
・UniTaskの再インストール
上記の改善策を試してみたのですが解消されませんでした

補足

Unity : 2022.3.22f1
UnityHub : 3.11.0
UniTask : 2.5.10(インストール済みhttps://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask)

01/23追記
UniTaskのインストールは## 実現したいこと
UniTaskが正常に動作するようになる

発生している問題・分からないこと

VisualStudioでネット上に記載されているテンプレートをそのままコピペして実行しようとしたが、「Cysharp」と「UniTask」の二箇所でエラーが発生しています

エラーメッセージ

error

1CS0246 型または名前空間の名前 'Cysharp' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) 2 3CS0246 型または名前空間の名前 'UniTask' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) 4

該当のソースコード

C#

1using Cysharp.Threading.Tasks; 2using UnityEngine; 3 4public class Sample : MonoBehaviour 5{ 6 private async void Start() 7 { 8 Debug.Log("処理開始"); 9 await SampleAsync(); 10 Debug.Log("処理終了"); 11 } 12 13 private async UniTask SampleAsync() 14 { 15 await UniTask.Delay(1000); // 1秒待機 16 Debug.Log("1秒経過"); 17 } 18}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Cysharp、UniTaskに関するエラーの記述がほとんどなく進行不可という状態です

・Unity,UnityHubの再起動
・Unity,UnityHubの再インストール
・UniTaskの再インストール
上記の改善策を試してみたのですが解消されませんでした

01/23追記
・新規プロジェクトを作成して同様の手順で導入をした結果、そちらでは正常に動作しました

補足

Unity : 2022.3.22f1
UnityHub : 3.11.0
UniTask : 2.5.10(インストール済みhttps://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask)

01/23追記
UniTaskのインストールは下記のサイトを参考に「packageManager」から「Add package from git」で追加しました。
エディターのPackageManagerではUniTaskが表示されており、ダウンロードされていることが確認できています
イメージ説明

参考サイトURL:https://shibuya24.info/entry/unity-start-unitask
GitURL:https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask

.csprojについて
イメージ説明
ファイルは上記に添付した画像しかなく、内容は該当のソースコード変わりありませんでした

ソリューションエクスプローラーの参照ではUniTaskに関するものはありませんでした

hrksh, juner👍を押しています

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

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

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

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

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

hrksh

2025/01/22 14:54

微力ながら、協力させてください。 僕だったらですが、こう確認して試してみます。 ・VisualStudio のエラーコード CS0246 について調査する。 ・名前空間とプロジェクト参照を確認する。 各エラー文について ①名前空間自体がソリューション内で認識されていなさそう 頂いているコードの冒頭に using Cysharp とされていますので、名前空間から認識されない状態に見えます。その場合はプロジェクト内での参照が漏れていないか確認してみます。 ②名前空間自体が認識されていない or 名前空間を定義してしまえば解決するかも UniTaskですが、こちらは独自の型 UniTask 型の返り値として使いたいのだと思います。その型が無いとされてしまっています。 この場合、 UniTaskが所属する名前空間を usingで定義した時解決するか試してみます。 解決しなければ①と同様にプロジェクト参照の追加が漏れていないかを確認します。 参照の追加方法 https://learn.microsoft.com/ja-jp/visualstudio/ide/how-to-add-or-remove-references-by-using-the-reference-manager?view=vs-2022 往々にしてこれで解決できることが多かったので書かせていただきました。 解決できなかったらすみません。他のプロフェッショナルな方よろしくお願いします💦
katsuko

2025/01/23 00:03

UniTaskが正しくインストールされていない可能性が高いです。 UniTaskがインストールされているか再度確認して、インストールした手順と確認した内容を質問を編集して追記してみてください。 また、新規のプロジェクトを作成して、UniTaskをインストールして、質問のスクリプトを追加しても同様にエラーになりますか? 質問内のエラー以外に他にもエラーが出ていませんか?
fieldmountain8

2025/01/23 03:13 編集

コメントありがとうございます。新規プロジェクトを作成して導入した結果、新規の方では問題なく動作しました。 ですが複数人で制作しているのもあり、プロジェクトの新規作成は避けたいです。
juner

2025/01/23 04:16

.csproj ファイルは一度削除して生成しなおししておられますでしょうか?(というか UniTask が csproj に記述されていますでしょうか?(インストールされた後に csproj にそれが含まれる必要があるのでまずはそこから(Unity 自体は csproj を自動生成するので使っている csproj が違うやつな場合がままある
fieldmountain8

2025/01/23 04:36

コメントありがとうございます。私事で大変恐縮なのですがUnity自体が初心者であるため、.csprojファイルが本来どこに存在しているか分かりません。 可能であれば、ファイルに関する詳細を記述して頂けると幸いです。 お手数おかけしますが何卒宜しくお願い致します。
juner

2025/01/23 05:20

UnityHub で プロジェクトを右クリックして show in explorer で プロジェクトが選択された状態でエクスプローラが開かれますので、そのプロジェクトの直下に csproj ファイルが幾つか見えると思います
fieldmountain8

2025/01/23 05:56

コメントありがとうございます。質問に補足の画像を添付しました。.csprojは添付画像の二つしかなく、削除して生成しても変わらずでした。UniTaskの記述場所が分からなかったのですが、ソリューションエクスプローラーの参照ではUniTaskに関する記述はありませんでした。
juner

2025/01/23 06:01 編集

変わらず…… csproj 削除して Unity を再起動してもダメでしょうか……? UniTaskの記述場所 自体は csproj の `<Reference Include="UniTask">` の様なタグが生成されると思われます unitaskの管理自体は Packages/manifest.json にあると思います。
fieldmountain8

2025/01/23 06:22

もう一度削除→再起動してみたのですがやはりダメでした。 csprojをダブルクリックすると該当ソースコードを書いたVisualStudioの画面に飛ぶのですがこの画面からタグの生成を確認することはできますでしょうか。 Packages/manifest.jsonでのUniTaskの記載はあり、以下の通りでした。 "com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
katsuko

2025/01/23 07:13

何処かにNewAssembly.asmdefというファイルはありませんか? また、それは意図して作ったものですか?
fieldmountain8

2025/01/23 07:32

コメントありがとうございます。NewAssembly.asmdefというファイルはscriptフォルダの中にありました。 一度下記のサイトを参考に「NewAssembly」と「NewAssemblyReference」を作成し、referenceにApplyしても変化なかったためUnityで二つともdeleteしました。 元々(?)見つけたNewAssemblyはスクリプトと一緒のフォルダにあります https://docs.unity3d.com/ja/current/Manual/ScriptCompilationAssemblyDefinitionFiles.html
fiveHundred

2025/01/23 08:28

「全角(日本語)のフォルダが存在する」「OneDriveと同期しているフォルダの中に存在する」と様々な不具合の原因になりますが、そうなっていませんか?
guest

回答1

0

おそらくアセンブリの問題かと思います。

asmdefファイル(アセンブリ定義ファイル)は、アセンブリを定義するファイルです。
アセンブリとは、プログラムの塊であり、アプリケーションの中で複数のアセンブリに分けてプログラムを分割することができます。
(分割するとどのようなメリットがあるかは、めんどくさいんで説明を省きます。)

Assets フォルダ以下にアセンブリ定義ファイルがなければ何も問題はありませんが、アセンブリ定義ファイルがあるとスクリプトが個別のアセンブリに分割されてしまい、設定なしでは他のアセンブリのプログラムコードを参照することができません。
UniTaskも一つのアセンブリにまとめられているので、UniTaskを参照することができず、今回のようなエラーになってしまいます。

特に明確な目的がなければ、アセンブリ定義ファイルは不要でしょう。
ファイル名からしてデフォルトのままですし、おそらくスクリプトを作成しようとして、間違えてアセンブリ定義ファイルを作成してしまったのでしょう。
ただ、チーム開発のようですし、他の人が作成したのであれば、なにか目的があって作成したのか、確認をとったほうが良いでしょう。

アセンブリ定義ファイルが必要であれば

アセンブリ定義ファイルに「このアセンブリはUniTaskのアセンブリを参照しているよ」という設定をしなければなりません。
以下の説明のとおりに、UniTaskのアセンブリを追加してください。

アセンブリ定義ファイルが不要であれば

アセンブリ定義ファイルを削除してください。
ただし、削除しただけではダメで、削除した後に以下の手順をしてください。

投稿2025/01/23 10:57

katsuko

総合スコア3558

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

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

fieldmountain8

2025/01/24 04:59

ご丁寧なコメントありがとうございます。アセンブリファイルは該当エラーが出てから作成したものになります。また、該当ファイルを削除し、再起動しても変わらずエラーが発生してしまいました。
katsuko

2025/01/26 14:33 編集

あと、アセンブリ定義ファイルを削除したら、エディタを終了してLibraryディレクトリを削除するのが確実です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.33%

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

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

質問する

関連した質問