- Home /
CS1519 List Error
I'm trying to use lists in a simple game, but I get an error when I try to add new elements to my Vector3 List, the compiler says it's getting an unexpected symbol '(' and MonoDevelop actually underlines 'new' when I try to use Add. Help me maybe?
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class NewBehaviourScript : MonoBehaviour {
List <Vector3> PatrolPoint = new List<Vector3>();
Vector3 vector = new Vector3 (0, 0);
PatrolPoint.Add(vector); //these line gets an error
PatrolPoint.Add(new Vector3(10,10)); //so do these two
PatrolPoint.Add(new Vector3(0,10));
Vector3 NxPatrolPoint = PatrolPoint[0];
int pointIndex = 0;
public int speed = 10f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Translate (NxPatrolPoint * speed);
if (transform.position = NxPatrolPoint) {
if(transform.position = PatrolPoint.Last()){
pointIndex = 0;
}
NxPatrolPoint = PatrolPoint[pointIndex];
}
}
}
Answer by tanoshimi · Dec 05, 2013 at 09:40 AM
A Vector3 constructor requires 3 parameters - x,y, and z. So:
Vector3 vector = new Vector3 (0, 0);
Should be:
Vector3 vector = new Vector3 (0, 0, 0);
and likewise for the other Vector3's.
edit:
Ack! Scrap that (although I still recommend you explicitly set all parameters of a Vector3) - the problem is that you're trying to populate the PatrolPoint list in the class definition outside of a method. You need to move those lines to the Start() function like this:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class NewBehaviourScript : MonoBehaviour {
List <Vector3> PatrolPoint = new List<Vector3>();
Vector3 NxPatrolPoint = PatrolPoint[0];
int pointIndex = 0;
public int speed = 10f;
// Use this for initialization
void Start () {
Vector3 vector = new Vector3 (0, 0);
PatrolPoint.Add(vector); //these line gets an error
PatrolPoint.Add(new Vector3(10,10)); //so do these two
PatrolPoint.Add(new Vector3(0,10));
}
// Update is called once per frame
void Update () {
transform.Translate (NxPatrolPoint * speed);
if (transform.position = NxPatrolPoint) {
if(transform.position = PatrolPoint.Last()){
pointIndex = 0;
}
NxPatrolPoint = PatrolPoint[pointIndex];
}
}
}
Actually Vector3 has a two float parameter constructor, anyway, I tried and I get the same exact errors
I'm telling you that's not the issue, even if I use the 3 param constructor, it throws the same error
I can't use list.Last() unless I add
using System.Linq;
as a footnote for anyone who may get CS1061 error.
Your answer

Follow this Question
Related Questions
A node in a childnode? 1 Answer
Help with Putting GameObjects into a list. 2 Answers
CS0264 - List 1 Answer
Explanation on how to use LIST<> in UnityScript 2 Answers
Inspector scripting, adding lists, checkboxes and buttons [With Image] 0 Answers