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

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

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

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

Unity

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

Q&A

解決済

2回答

35608閲覧

エラー文:ArgumentOutOfRangeException: Argument is out of range.

TKM_waiwai

総合スコア16

C#

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

Unity

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

0グッド

0クリップ

投稿2016/11/28 01:20

編集2016/11/30 04:15

Unityにおいて制作を行っているのですが、
「ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index」というエラーが出てしまいました。

このエラーの改善方法について教えて頂けると嬉しいです。

C#

1using UnityEngine; 2using System.Collections; 3using System.Collections.Generic; 4 5public abstract class EnemyBase : GameActor { 6 7 [SerializeField] 8 private PlayerMover player; 9 [SerializeField] 10 protected float tweenTime = 0.05f; 11 [SerializeField] 12 public enum EnemyStatas 13 { 14 Enemy, 15 Enemy1, 16 } 17 public EnemyStatas type; 18 19 20 public enum State 21 { 22 Moving, 23 MoveEnd, 24 } 25 26 public State state = State.Moving; 27 public State GetState { get { return state; } } 28 29 protected ANode node = null; 30 31 protected Vector3 nextPosition = Vector3.one; 32 protected Vector3 currentPosition = Vector3.one; 33 34 35 public abstract void Init(); 36 public abstract void Proc(); 37 public abstract void Finish(); 38 public abstract void Dead(); 39 40 41 public void AIMoveDirAStar() 42 { 43 FieldManager.Instance.GetGroundLayer.SetParam(X, Z, (int)ObjectType.None); 44 var path = FieldManager.Instance.FindPath(X, Z, player.X, player.Z); 45 46 if(path == null) { return; } 47 48 nextPosition = new Vector3(path[1].x, 1, path[1].z); 49 } 50 51 public List<Point2D> FindPath(int xStart, int zStart, int xGoal, int zGoal) 52 { 53 var pList = new List<Point2D>(); 54 var astar = new ANodeManager(FieldManager.Instance.GetGroundLayer, xGoal, zGoal); 55 var node = astar.OpenNode(xStart, zStart, 0, null); 56 if (node == null) 57 { 58 Debug.LogError("スタート地点が不正です"); 59 return null; 60 } 61 62 astar.AddOpenList(node); 63 64 int cnt = 0; 65 while (cnt < 1000) 66 { 67 astar.RemoveOpenList(node); 68 astar.OpenAround(node); 69 70 node = astar.SerchMinScoreNodeFromOpenList(); 71 if (node == null) 72 { 73 Debug.LogError("袋小路なので終了"); 74 return null; 75 } 76 if (node.X == xGoal && node.Z == zGoal) 77 { 78 astar.RemoveOpenList(node); 79 node.GetPath(pList); 80 pList.Reverse(); 81 return pList; 82 } 83 } 84 Debug.LogError("なんもねえ"); 85 return null; 86 } 87 public virtual void Move() 88 { 89 90 } 91 public virtual void AnimationEnd() 92 { 93 94 } 95 public virtual void Attack(PlayerMover pl) 96 { 97 98 } 99}

AIMoveDirAStar()の中の
nextPosition = new Vector3(path[1].x, 1, path[1].z);
でエラーを吐いているみたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Parameter name: index

この後に何か続きませんでしょうか?

よくあるケースはlistの要素が入っていないなど
http://answers.unity3d.com/questions/635657/argumentoutofrangeexception-argument-is-out-of-ran-4.html
http://stackoverflow.com/questions/35957857/c-unity-list-argument-is-out-of-range

投稿2016/11/28 01:37

aja

総合スコア3733

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

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

TKM_waiwai

2016/11/28 01:41

すみません、続きありました。 「System.Collections.Generic.List`1[Point2D].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)」と出ています。 恐らく要素の問題なのでしょうか。
TKM_waiwai

2016/11/30 04:10

この後に続くのは具体的にどこがエラーを指しているのかを示しています。 詳しくエラーが指されているソースを込みで再度質問出してみます。
guest

0

そのエラーメッセージに書いてある通りで、
「index の値が out of range」しているのですから、index の値が、許される上限値を超えている(あるいは下限値未満かもしれない)のです。

そのエラーメッセージが出る直前の場所で index の値を調べてみるところからですね。

投稿2016/11/28 01:25

tacsheaven

総合スコア13703

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問