2017-10-30 12 views
-1

こんにちは、私はQuill18によって作成されたUnityチュートリアルに従います。私のコードでは、いくつかの16進プレアブをインスタンス化しようとしています。"関数のオーバーロードなし" instantiate "は4つの引数をとります。

using UnityEngine; 
using System.Collections; 

public class HexMap : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 
     GenerateMap(); 
    } 
    public GameObject HexPrefab; 
    public void GenerateMap() 
    { 
     for (int column = 0; column < 10; column++) { 
      for (int row = 0; row < 10; row++) 
      { 
       Instantiate (HexPrefab, new Vector3 (column, 0, row), Quaternion.identity, this.transform); //this is the exact code he used and was working for him 
      } 
     } 
    } 

} 

インスタンス化の方法で問題が発生しています。オンラインドキュメントでも4つの引数を渡すことができますが、「関数のオーバーロードはありません」というインスタンス化は「4つの引数を取る」というエラーが表示されています。 スクリプトコンポーネントが空に接続されています。

+0

あなたは、バージョン5.4以上を使用して確認してください。 –

+0

私はチェックして、それは最新であることを示しています: "ユニティエディタは最新です。現在インストールされているバージョンは5.3.8p2です" –

+0

APIに問題が発生したときに最初に起こるリフレクションは、 .... – Hellium

答えて

2

Unity3D's 5.3 documentationは、4つのパラメータを取るObject.Instantiateの定義がないことを示しています。ただし、starting from 5.4の場合は、意図したとおりにInstantiateメソッドを使用できます。 Unityバージョンがチュートリアルと同じであることを確認してください。次のように

あなたのインスタンス化ゲームオブジェクトの親を変更するための回避策は、ユニティ5.3.xのために、次のとおりです。

public void GenerateMap() 
{ 
    GameObject GO; 
    for (int column = 0; column < 10; column++) { 
     for (int row = 0; row < 10; row++) 
     { 
      GO = Instantiate (HexPrefab, new Vector3 (column, 0, row), Quaternion.identity) as GameObject; 
      GO.transform.parent = this.transform; 
     } 
    } 
} 
+0

素晴らしい!どうもありがとう! –

+0

私は、GOの宣言をより広い範囲に移動するために編集を行い、ループ内のすべての単一ステップで新しい割り当てを避けました。 –

関連する問題