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

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

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

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

ArgumentNullException: Value cannot be null. といコードエラーがでて対応を教えてください unity

doracyan
doracyan

総合スコア6

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

0クリップ

19719閲覧

投稿2020/02/19 03:34

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)unity とc#をつかって下記のコードを書きました。
やりたいことはprocessedfileという配列にunity Resources内の既存のfile名を格納
Unity Resources内に新たにimportしたfile名とprocessedfile内のfileが一致したか、してないかで条件作成
条件があてはまらなければprefab作成といものを考えています

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

ArgumentNullException: Value cannot be null. Parameter name: array System.Array.IndexOf[T] (T[] array, T value) (at <437ba245d8404784b9fbab9b439ac908>:0) getfish.Update () (at Assets/getfish.cs:39)

該当のソースコード

c#

using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.IO; using System.Threading; public class getfish : MonoBehaviour { public static String[] processedFiles; // Start is called before the first frame update static void Main(string[] args) { processedFiles = new String[1]; //動的に配列のサイズを変えるので最初は配列の数を1個で作成。 Console.WriteLine(processedFiles.Length); } // Update is called once per frame void Update() { IEnumerable<string> files = System.IO.Directory.EnumerateFiles( @"C:\Users\pokem\aquarium\Assets\Resources", "*", System.IO.SearchOption.AllDirectories); foreach (string f in files) { //ファイル名を取得 string str = Path.GetFileName(f); //処理済み一覧に一致するファイル名があるかどうかチェック int i = Array.IndexOf(processedFiles, str); Console.WriteLine("0以上なら配列に同じファイルが存在する " + i); //配列に一致するファイル名があれば、このファイルの処理を飛ばす if (i > -1) { Console.WriteLine("continueしました"); continue;//次のファイルの処理へ移る } GameObject obj = (GameObject)Resources.Load("Quad"); Quaternion rote = Quaternion.Euler(0.0f, 45.0f, 90.0f); GameObject instance = (GameObject)Instantiate(obj, new Vector3(5.0f, 5.0f, 5.0f), Quaternion.identity); var rend = instance.GetComponent<Renderer>(); rend.material.mainTexture = Resources.Load(str) as Texture; getfish.processedFiles[getfish.processedFiles.Length - 1] = str; Console.WriteLine(getfish.processedFiles[getfish.processedFiles.Length - 1]); //次回の配列操作処理に備えて配列のサイズを1つ大きくしておく Array.Resize(ref processedFiles, processedFiles.Length + 1); Console.WriteLine("processedFiles[]配列の数" + processedFiles.Length); for (int count = 0; count < processedFiles.Length; count++) { Console.WriteLine("processedFiles[]配列リスト" + processedFiles[count]); } } } } ースコード

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。