2017-02-23 8 views
-3

Unityを使用して、特定のスクリプトを持つGameObjectを配列に追加しようとしています。私はさまざまな方法を試してみましたが、最終的に私はこれで終わりました。私の人生のために、なぜ私にエラーを与えているのか分かりません。ほとんどの構文から私は構文エラーを見つけることができません。私はget/setを使うのは意味がないのだろうと思っていますが、forループとはどのように違うのか分かりません。ありがとうございました!error CS0201:割り当て、呼び出し、増分、減分、待機、および新しいオブジェクト式のみをステートメントとして使用できます。

public class QuestFinderScript : MonoBehaviour { 
GameObject[] objects; 
public List<GameObject> interactables = new List<GameObject>(); 
int interactablesSize; 

void Start(){ 

    interactables = new List<GameObject>(); 
    objects = GameObject.FindGameObjectsWithTag ("Untagged"); 
    interactablesSize = objects.Length; 

    for (int i = 0; i < interactablesSize; i++) { 

     InteractionSettings iset = objects [i].GetComponent<InteractionSettings>(); 
     if (iset != null) { 
      interactables.Add [i]; 

     } 
    } 
} 

}

+4

[あなたが実際に '.Add()'をどのように使うかの構文を見直しましたか?(https://msdn.microsoft.com/en-us/library/) 3wcytfd1(v = vs.110).aspx)? – Serlite

+0

ええ、はい?これは他のコードで私の前で働いていたので、何が問題なのか分かりません。私が括れにすると、同じエラーが出ます。 – jannar

+1

Addは関数なので、a()が必要です。これのようなもの: 'interactables.Add(iset.gameObject);' – Programmer

答えて

1

第一の問題:Jannarが言うように、追加のリストのための機能ではなく、インデクサです。

追加(i)はもちろん

正しい、エラーがあなたの第一の問題によるものです。

第2の問題:GameObjectのインタラクティブ機能のリストでは、ゲームオブジェクトのリストに整数(iは整数)を追加しようとします。

コードを確認し、Interactablesに追加する内容を理解してください。

1

あなたのご意見をお寄せいただきありがとうございます。問題の一部は、私が参照していたスクリプトが、ゲームオブジェクト自体のコンポーネントではなく、子供であることを認識していないことでした。しかし、誰かが好奇心を持っている場合:

interactables = new List<GameObject>(); 
    objects = GameObject.FindGameObjectsWithTag ("questable"); 
    interactablesSize = objects.Length; 

    Debug.Log (interactablesSize); 

    for (int i = 0; i < interactablesSize; i++) { 

     InteractionSettings iset = objects [i].GetComponentInChildren<InteractionSettings>(); 
     if (iset != null) { 
      interactables.Add(iset.gameObject); 
     } 
    } 
関連する問題

 関連する問題