2

シーンに6つのオブジェクト(ボール)を配置したいです。コードは機能しているように見えますが、コンソール メッセージが表示されます。メッセージ :

「Assets/GameScripts/Instance.cs(26,40): エラー CS0266: 型object' toUnityEngine.Vector3 を暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)」

UnityEngine の使用; System.Collections を使用します。

public class Instance : MonoBehaviour { パブリック ゲームオブジェクト ボール;

public ArrayList coordinateContainer = new ArrayList();



// Use this for initialization
void Start () {

    coordinateContainer.Add(new Vector3(1f,1f,1f));
    coordinateContainer.Add(new Vector3(2f,1f,1f));
    coordinateContainer.Add(new Vector3(3f,1f,1f));
    coordinateContainer.Add(new Vector3(4f,1f,1f));
    coordinateContainer.Add(new Vector3(5f,1f,1f));
    coordinateContainer.Add(new Vector3(6f,1f,1f));


    //ball.transform.position = new Vector3(1f,1f,1f);
    ball.transform.rotation = Quaternion.identity;

    for (int i = 0; i <  6; i++) {
        ball.transform.position = coordinateContainer[i];
        Instantiate(ball,ball.transform.position,ball.transform.rotation);
    }
}

// Update is called once per frame
void Update () {

}

}

4

1 に答える 1

5

を使用しているためArrayList、ベクトルは として保存されていobjectsます。これを試して

ball.transform.position = (Vector3)coordinateContainer[i];

List<Vector3>キャストを回避できるように、 ArrayList の代わりに使用した方がよい場合があります( List<T>type のオブジェクトのみを保持できるためT)。

于 2013-07-03T08:16:11.583 に答える