- Home /
Assigning the script over the target (from surviving island)
I'm on the target part, putting a target collision over the target (inside the target_pivot). It says me that I have to drag the target_hit and the target_reset audio files from the book assets to the relevant public variables in the inspector.
I can't drag the two sounds there, it gaves me one or I only see one, and then I want to play the game but gives me the next errors in the same line of the same script and I don't know why :(
This is the code:
#pragma strict
function Start () {
targetRoot = transform.parent.transform.parent.animation;
}
function OnCollisionEnter(theObject : Collision){
if(beenHit==false && theObject.gameObject.name=="coconut"){
StartCoroutine("targetHit");
}
}
function targetHit(){
audio.PlayOneShot(hitSound);
targetRoot.Play("down");
beenHit=true;
yield new WaitForSeconds(resetTime);
audio.PlayOneShot(resetSound);
targetRoot.Play("up");
beenHit=false;
}
private var beenHit : boolean = false;
private var targetRoot : Animation;
var hit Sound : AudioClip;
var reset Sound : AudioClip;
var reset Time : float = 3.0;
@scriptRequireComponent(AudioSource)
These are the errors: Assets/Scripts/TargetCollision.js(26,8): UCE0001: ';' expected. Insert a semicolon at the end.
Assets/Scripts/TargetCollision.js(26,9): BCE0044: expecting EOF, found 'Sound'.
Please help me! :(,
I never coded in this language, but is "hit Sound" really allowed variable name? I assume variable names delaration does not allow whitespace (in your case, space). Try using "hitSound". And do the same for other variables.
Answer by clunk47 · Dec 28, 2012 at 03:17 AM
Don't use spaces in variables. You had things like been Hit, you need to have either been_Hit or beenHit. And the opposite, you didn't have a space in your @scriptRequireComponent, should be @script RequireComponent.... Try this..
#pragma strict
private var beenHit : boolean = false;
private var targetRoot : Animation;
var hitSound : AudioClip;
var resetSound : AudioClip;
var resetTime : float = 3.0;
@script RequireComponent(AudioSource)
function Start ()
{
targetRoot = transform.parent.transform.parent.animation;
}
function OnCollisionEnter(theObject : Collision)
{
if(beenHit==false && theObject.gameObject.name=="coconut")
{
StartCoroutine("targetHit");
}
}
function targetHit()
{
audio.PlayOneShot(hitSound);
targetRoot.Play("down");
beenHit=true;
yield new WaitForSeconds(resetTime);
audio.PlayOneShot(resetSound);
targetRoot.Play("up");
beenHit=false;
}
Answer by bruga94 · Dec 28, 2012 at 05:25 AM
Assets/Scripts/TargetCollision.js(32,1): BCE0043: Unexpected token: .
This is my result, the problem was solved but I have this right now haha :(
#pragma strict
function Start () {
targetRoot = transform.parent.transform.parent.animation;
}
function OnCollisionEnter(theObject : Collision){
if(beenHit==false && theObject.gameObject.name=="coconut"){
StartCoroutine("targetHit");
}
}
function targetHit(){
audio.PlayOneShot(hitSound);
targetRoot.Play("down");
beenHit=true;
yield new WaitForSeconds(resetTime);
audio.PlayOneShot(resetSound);
targetRoot.Play("up");
beenHit=false;
}
private var beenHit : boolean = false;
private var targetRoot : Animation;
var hitSound : AudioClip;
var resetSound : AudioClip;
var resetTime : float = 3.0;
@scriptRequireComponent(AudioSource)
Your answer
Follow this Question
Related Questions
Why don't my send messages work? 2 Answers
How to use option setting Vibrate and Mute 1 Answer
Explosion Jumpscare Script ? 1 Answer
Detect if out of trigger 2 Answers
How to Set "Target" from two or more different script? 1 Answer