I cannot seem to find the error in the targetting script I am recreating from the burgzerg arcade tutorials for the hack and slash. If anyone could point out my error it would be very much appreciated. By the way, this is the tutorial I was on when I go stuck: http://www.youtube.com/watch?NR=1&v=P-Jpxdl7AR8&feature=endscreen
2 of the lines have red underlines however I cannot seem to figure out the error. Unity is telling me the error is an unexpected symbol } and a parsing error.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class PlayerTargetting : MonoBehaviour {
public List targets;
private Transform SelectedTarget;
private Transform myTransform;
// Use this for initialization
void Start () {
targets = new List();
AddAllEnemies();
SelectedTarget = null;
myTransform = transform;
}
public void AddAllEnemies()
{
GameObject[ ] go = GameObject.FindGameObjectsWithTag(“Enemy”);
foreach(GameObject Enemy in go)
AddTarget(Enemy.transform);
}
public void AddTarget(Transform Enemy)
{
targets.Add(Enemy);
}
private void SortTargetsByDistance()
{
targets.Sort(delegate(Transform t1, Transform t2){
return Vector3.Distance(t1.position, myTransform.position).CompareTo(Vector3.Distance(t2.position, myTransform.position));
});
}
private void TargetEnemy()
{
if(SelectedTarget == null)
{
SortTargetsByDistance();
SelectedTarget = targets[0];
}
else
{
int index = targets.IndexOf(SelectedTarget);
unexpected symbol } means you put a closed a brace in the wrong place
and the easiet wasy to fix them is better formatting in your IDE.
Make sure theres an equal number of {'s and }'s
FYI Theres a code tags button when you make a post.
/////////you probably need a { for this function
private void SelectTarget();
SelectedTarget.renderer.material.color Color.red
} (This line has a red underline)
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class PlayerTargetting : MonoBehaviour {
public List <Transform> targets;
private Transform SelectedTarget;
private Transform myTransform;
// Use this for initialization
void Start () {
targets = new List<Transform>();
AddAllEnemies();
SelectedTarget = null;
myTransform = transform;
}
public void AddAllEnemies()
{
GameObject[] go = GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject Enemy in go)
AddTarget(Enemy.transform);
}
public void AddTarget(Transform Enemy)
{
targets.Add(Enemy);
}
private void SortTargetsByDistance()
{
targets.Sort(delegate(Transform t1, Transform t2){
return Vector3.Distance(t1.position, myTransform.position).CompareTo(Vector3.Distance(t2.position, myTransform.position));
});
}
private void TargetEnemy()
{
if(SelectedTarget == null)
{
SortTargetsByDistance();
SelectedTarget = targets[0];
}
else
{
int index = targets.IndexOf(SelectedTarget);
if(index < targets.Count - 1)
{
index++;
}
else
{
index = 0;
}
SelectedTarget = targets[indexer];
}
}
private void SelectTarget();
SelectedTarget.renderer.material.color Color.red
{} //this line has a red line now. Deleting them makes
// Update is called once per frame
void Update () { //this line have an error
if(Input.GetKeyDown(KeyCode.Tab))
{
TargetEnemy();
}
}
}
private void SelectTarget() //no line ender ; here
{ //open bracket for function
SelectedTarget.renderer.material.color Color.red
} //close bracket for function