- Home /
scripting error
using UnityEngine; using System.Collections; using System.Collections.Generic;
public class Targetting : MonoBehaviour { public List targets; public Transform selectedTarget;
private Transform myTransform;
// Use this for initialization
void Start () {
targets = new List<Transform> ();
selectedTarget = null;
myTransform = Transform;
AddAllEnemies ();
}
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[index];
SelectTarget();
}
}
private void SelectTarget()
{
selectedTarget.renderer.material.color = color.red;
}
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Tab))
{
TargetEnemy();
}
}
}
private void TargetEnemy() { if(selectedTarget == null) { SortTargetsByDistance(); selectedTarget = targets[0]; }
This where i am having these messages:
(10,10): Error CS1518: Expected class, delegate, enum, interface, or struct (CS1518) (Assembly-CSharp) (29,29): Error CS1001: Identifier expected (CS1001) (Assembly-CSharp) (3,3): Error CS1022: Type or namespace definition, or end-of-file expected (CS1022) (Assembly-CSharp)
Answer by Jessespike · Nov 12, 2015 at 05:29 PM
There's a few syntax errors. Frequent saving and compiling while writing code (or copy-pasting..) will help you catch scripting errors before they get out of hand, Here are the fixes:
public List targets;
Should be: public List<Transform> targets;
myTransform = Transform;
myTransform = transform;
int index = targets.Indexof(selectedTarget);
int index = targets.IndexOf(selectedTarget);
selectedTarget.renderer.material.color = color.red;;
selectedTarget.GetComponent<Renderer>().material.color = Color.red;
Remove the "}" between SortTargetsByDistance() and TargetEnemy()
Your answer