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

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

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

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

Q&A

1回答

2085閲覧

unityのビルドでエラーが出てしまう

ichigo_0308

総合スコア41

Unity

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

0グッド

0クリップ

投稿2022/04/17 06:24

前提

UnityでAndroidのビルドをしようとすると、以下のようにエラーが出ます。
エラーについて何度も検索し、実践しましたが、直りませんでした。

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

C#

1Assets\My\Scripts\CoinManager.cs(16,34): error CS0103: The name 'EditorUserSettings' does not exist in the current context 2↑どうやらEditorUserSettingsというものがないといわれているが、 3unityに実際に存在しており、ビルド以外では使える。

該当のソースコード

C#

1ソースコードusing System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEditor; 5using UnityEngine.UI; 6 7public class CoinManager : MonoBehaviour 8{ 9 public Text CoinText; 10 public int coin; 11 private const string FIRST_STARTUP_KEY = "FIRST_STARTUP_KEY"; 12 // Start is called before the first frame update 13 void Start() 14 { 15 CoinText = GetComponent<Text>(); 16 if (string.IsNullOrEmpty(EditorUserSettings.GetConfigValue(FIRST_STARTUP_KEY))) 17 { 18 EditorUserSettings.SetConfigValue(FIRST_STARTUP_KEY, FIRST_STARTUP_KEY);//初回起動フラグ設定 19 Debug.Log("初回起動だよ!"); 20 PlayerPrefs.SetInt("Coin", 1000); 21 } 22 else 23 { 24 coin = PlayerPrefs.GetInt("Coin"); 25 } 26 } 27 28 // Update is called once per frame 29 void Update() 30 { 31 coin = PlayerPrefs.GetInt("Coin"); 32 CoinText.text = PlayerPrefs.GetInt("Coin").ToString(); 33 if(Input.GetKey(KeyCode.F11)) 34 { 35 Debug.Log("初回起動だよ!"); 36 PlayerPrefs.SetInt("Coin", 1000); 37 } 38 } 39 public void CoinManagement(int number) 40 { 41 if (PlayerPrefs.GetInt("Coin") >= Mathf.Abs(number)) 42 { 43 PlayerPrefs.SetInt("Coin", (PlayerPrefs.GetInt("Coin") + number)); 44 } 45 } 46}``` 47 48### 試したこと 49エラーコードでそれぞれ検索→実践→効果なし 50「unity Android Build できない」で検索→該当記事無し 51 52### 補足情報(FW/ツールのバージョンなど) 53 54unityのバージョン:2021.2.18f1 55コードアプリ:VisualStudio2022

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

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

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

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

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

y_waiwai

2022/04/17 06:43

実際に存在しておりって、どこに存在してるんでしょうか
bboydaisuke

2022/04/17 08:13

エラーメッセージとそれへのコメントがプログラムとして扱われていて見づらいですね。
ichigo_0308

2022/04/17 08:41

>>y_waiwai このコード内に存在しないといわれていますが、Unityの機能なので存在するということです。誤解を招く言い方をしてしまい申し訳ありませんでした。 >>bboydaisuke すみません。質問も見やすくするのが大事ですよね。ご指摘ありがとうございます。
guest

回答1

0

using UnityEditor;

↑Unity "Editor" を操作するコードをビルドすることはできません。なぜならビルドしたコードは "Editor" ではないからです。
開発中に Unity Editor を操作するコード(つまりエディタ拡張)は Editor フォルダの中に入れて、ビルドされないようにしなければなりません。

「初回起動を判定したい」ようですが、その書き方だとあくまで Unity Editor 上で初回実行か判定できるだけであって、ビルドするものに含めてはいけないコードになっています。

備考

エディタ拡張のコードは プラットフォーム依存コンパイル して Unity Editor 上でのみ動くようにする、というやり方もあります。

投稿2022/04/17 08:02

編集2022/04/17 08:12
bboydaisuke

総合スコア5339

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

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

ichigo_0308

2022/04/17 08:42

回答ありがとうございます。現在、諸事情によって実行できない状況ですので、解決することができたらベストアンサーにします。
ichigo_0308

2022/04/26 10:14

すみません!かなり時間が空いてしまいました! Editorを消して、別の方法で実行したのですが、また別のエラーが出てしまいました。 Exception: Gradle project template version mismatch, expected 3 was 0, this means Unity's gradle template files were changed. Please export to an empty folder and review the changes in gradle project files. gradleのバージョンが一致しないのが原因と分かったのですが、ここからどうしたらいいか... とりあえずこちら側でも調べてみますので、よろしくお願いいたします。
bboydaisuke

2022/04/26 13:10

ググっても同じ問題がみつからなかったので、私にはわかりません。 「別の方法」というのがよくわかりませんが、それが良くないということはありませんか。
ichigo_0308

2022/04/27 08:18

返信ありがとうございます。 Google翻訳で翻訳すると、Unity側のGradleの バージョンとAndroid Studio側のGradleのバージョンがあってないといわれてるみたいです。 調べれば2019までのGradleのバージョンは乗っているのですが、2020以降のGradleのバージョンが乗っておらず、確認できない状態なんですよね... >>「別の方法」というのがよくわかりませんが、それが良くないということはありませんか。 別の方法というのはPlayerPrefsでデータがあるか確認するという方法に切り替えました。(セキュリティ性に欠けますが急いでいたのでこの方法を採用) PlayerPrefsのスクリプトは作動するので、おそらくそれが原因ではないかと...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問