- Home /
Not expecting void Start
Hi, I'm trying to make a very basic melee attack, but when I tried adding a cooldown to the attack, I got the error "...(10.12):error CS1519: Unexpected symbol 'void' in class, struct, or interface member declaration" My problem is that the error is refereeing to the "void Start" in the initialization, which has to be there, what did I do wrong? Here's the code, thanks a bunch.
using UnityEngine;
using System.Collections;
public class PlayerAttack : MonoBehaviour {
public GameObject target;
public float attackTimer;
public float coolDown
// Use this for initialization
void Start () {
attackTimer = 0;
coolDown = 2.0f;
}
// Update is called once per frame
void Update () {
if(attackTimer > 0)
attackTimer -= Time.fixedDeltaTime;
if(attackTimer < 0)
attackTimer = 0;
if(Input.GetKeyUp(KeyCode.F)) {
if(attackTimer ==0){
Attack();
attackTimer = coolDown;
}
}
}
private void Attack() {
float distance = Vector3.Distance(target.transform.position, transform.position);
Vector3 dir = (target.transform.position - transform.position).normalized;
float direction = Vector3.Dot(dir, transform.forward);
Debug.Log(direction);
if(distance < 2.5f) {
if(direction > 0) {
EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
eh.AddjustCurrentHealth(-10);
}
}
}
}
Fixed the code highlighting. Please make sure you highlight your code in the future. Just select the code and press the "101 010" button.
Answer by Dreamblur · Jun 29, 2011 at 11:04 PM
You forgot to put a semi-colon after the last variable before your Start method.
I already knew what it was as soon as I read the error -- it's kinda a basic error. =P
Well, it's most of the time a missing semicolon but not always ;)
Answer by Tedward61194 · Jun 29, 2011 at 11:10 PM
Wow thanks, I really hate programming sometimes X)
First, don't use answers as comments!
Second, The compiler have to read and translate your code. actually you don't need any new lines in the code, you could write all in one single line (The only exception are single-line-comments of course). Each statement have to be ter$$anonymous$$ated by a semicolon so the compiler knows it's finished. If after coolDown comes a {get;}
the compiler would create a property ins$$anonymous$$d of a normal field for example.
Your answer
![](https://koobas.hobune.stream/wayback/20220612125711im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
help please 2 Answers
Unexpected Token: Collider. 1 Answer
What does BCE0004: Ambiguous reference error mean? 3 Answers
Can't compile script from Scripting Tutorial (translated to Boo) 3 Answers
Lerpz tutorial multiple errors.HELP!!!! 4 Answers