🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

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

Q&A

解決済

1回答

8664閲覧

Unityのerror CS0246の解決方法

k.ryou

総合スコア2

C#

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

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

0グッド

0クリップ

投稿2021/03/27 08:15

Unityの error CS0246の解決方法

AllSky Free - 10 Sky / Skybox Setというアセットを使って製作をしていて、途中で諸事情でプラットフォームをWebGLに変えてビルドを行ったらエラーが出てしまい、いろいろ解決手段を探してみているのですがわからないので教えていただきたいです。

発生している問題・エラーメッセージ

Assets\AllSkyFree\AllSkyFree_Menu.cs(10,4): error CS0246: The type or namespace name 'MenuItem' could not be found (are you missing a using directive or an assembly reference?)
Assets\AllSkyFree\AllSkyFree_Menu.cs(10,4): error CS0246: The type or namespace name 'MenuItemAttribute' could not be found (are you missing a using directive or an assembly reference?)

該当のソースコード

C#

1using UnityEditor; 2using UnityEngine; 3 4/* Delete this file to remove the AllSky menu item. */ 5 6namespace Com.AllSkyFree 7{ 8 public class AllSkyFreeMenu : MonoBehaviour 9 { 10 [MenuItem("Window/AllSky/AllSky 200+ Skybox Set")] 11 static void Link() 12 { 13 Application.OpenURL( "https://assetstore.unity.com/packages/2d/textures-materials/sky/allsky-200-sky-skybox-set-10109" ); 14 } 15 16 } 17}

試したこと

アセットストアからの再インポートなどを試したりしたんですが、この問題が分からずどうすればいいかわかりません。

補足情報(FW/ツールのバージョンなど)

Unityのバージョンは2019.3.15f1 Personalです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

namespaceがUnityEditorのものはビルドに含められないのでそのエラーが出ます。
スクリプトはエディタ拡張の機能だけなので : MonoBehaviourを削除して何も継承しないクラスにすればよさそうです。

投稿2021/03/27 09:12

shiena

総合スコア1827

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

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

k.ryou

2021/03/27 09:34

すみません、おっしゃられた所を削除したのですが同じエラーが出てしまいました。
shiena

2021/03/27 09:44

すみません、もう1つ忘れていました。 Editorフォルダを作ってその中にスクリプトを入れるとビルド対象外になるのでエラーは出なくなると思います。 もしビルドに含めたいスクリプトならば以下のように#if UNITY_EDITOR ~ #endifで囲めばその部分はビルド時に無効化できます。 #if UNITY_EDITOR using UnityEditor #endif #if UNITY_EDITOR [MenuItem("Window/AllSky/AllSky 200+ Skybox Set")] #endif
k.ryou

2021/03/27 10:42

ビルド出来ました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問