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

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

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

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

Unity

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

Q&A

解決済

1回答

4434閲覧

Unity ビルドしようとするとerror CS0103が出てしまう

kanatan1231

総合スコア18

C#

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

Unity

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

0グッド

0クリップ

投稿2018/12/11 10:12

Macでビルドしようとしているのですが、error CS0103が出てビルドできずに困っています。

エラー内容は、
Assets/RandomScene.cs(19,29): error CS0103: The name `EditorBuildSettings' does not exist in the current context
で、RandomScene.csの中身は、以下です。

C#

1using UnityEngine; 2using UnityEditor; 3using System.Collections; 4using System.Collections.Generic; 5using UnityEngine.SceneManagement; 6 7public class RandomScene : MonoBehaviour 8{ 9 List<int> numbers = new List<int>(); 10 public GameObject text; 11 Count count; 12 [SerializeField] 13 public GameObject timer; 14 15 void Start() 16 { 17 DontDestroyOnLoad(this); 18 19 for (int i = 3; i < EditorBuildSettings.scenes.Length; i++) 20 { 21 numbers.Add(i); 22 } 23 24 numbers.RemoveAt(2); 25 numbers.RemoveAt(1); 26 numbers.RemoveAt(SceneManager.GetActiveScene().buildIndex); 27 count = text.GetComponent<Count>(); 28 } 29 30 void Update() 31 { 32 float three = count.totalTime; 33 if (three <= 1) 34 { 35 StartCoroutine("LoadLoop"); 36 } 37 } 38 39 IEnumerator LoadLoop() 40 { 41 while (numbers.Count > 5) 42 { 43 RandomSceneChange(); 44 } 45 yield return null; 46 } 47 48 public void RandomSceneChange() 49 { 50 Debug.Log("numbers.Count " + numbers.Count); 51 int ransu = numbers[Random.Range(0, numbers.Count)]; 52 Debug.Log("ransu " + ransu); 53 numbers.Remove(ransu); 54 SceneManager.LoadScene(ransu); 55 if (numbers.Count == 0){ 56 SceneChange(); 57 } 58 } 59 void SceneChange() 60 { 61 SceneManager.LoadScene("Total"); 62 //Timer 内の OnGoal という関数を使用する 63 timer.GetComponent<Timer>().OnGoal(); 64 } 65} 66

調べてこちらのサイトを参考にタイプミスを疑いましたが、ミスしているような箇所が見当たりません。
【Unity エラー】CS0103 : タイプミスの可能性
また、こちらのサイトを参考に、
EditorBuildSettings.scenes
List<int> numbers = new List<int>();を
List<EditorBuildSettingsScene> editorBuildSettingsScenes = new List<EditorBuildSettingsScene>();
に変えてみたりしたのですが、エラーが消えません。
原因を探っているのですが、何かお気付きの方がいましたら、コメントをお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

EditorBuildSettings - Unity スクリプトリファレンス
「class in UnityEditor」なのでエディタ上でしか使えないクラスです。

SceneManager.sceneCountInBuildSettingsが同じ意味っぽいのでこっちを使えばいいんじゃないかと思います。(未検証)
SceneManagement.SceneManager.sceneCountInBuildSettings - Unity スクリプトリファレンス
UnityでSceneManagerを使う(基本編その2) - スマゲ

投稿2018/12/11 11:34

sakura_hana

総合スコア11427

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

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

kanatan1231

2018/12/11 13:05

for (int i = 3; i < EditorBuildSettings.scenes.Length; i++)を for (int i = 3; i < SceneManager.sceneCountInBuildSettings; i++)にし、二行目のusing UnityEditor;を消したら、正常に動作かつビルドすることができました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問