- Home /
Collider not activating
Problem:
The collider should should work on activation, but it wont.
Script:
var pressed : boolean = false;
var Speedtap : GameObject;
var Endurance : GameObject;
var Timed : GameObject;
var Back : GameObject;
var Start: Collider;
function OnMouseDown () {
audio.Play();
if (pressed == true) {
Speedtap.active = false;
Endurance.active = false;
Timed.active = false;
Back.active = false;
Start.active = true;
}
}
function OnMouseUp () {
pressed = true;
renderer.material.color = Color.red;
audio.Play();
}
Question:
How can I get it to work? Thanks anyone who can help.
put a Debug.log()
into your script to see if Start.active = true;
is being called. Also, Did you assign the collider in your inspector? I know that sound like a noob mistake but im just checking.
Answer by robertbu · Feb 17, 2013 at 08:12 PM
I'm confused by your code. What object is the collider "Start" connected to? Is it the current game object, and if so did you drag it into Start in the Inspector? Or is it attached to another game object? You are setting the "active" flag of the game object directly. If you look at the warning generated in the Console window, this usage is obsolete. Use GameObject.SetActive() instead.
You also write "Start.active = true." I'm surprised this compiled, since I don't know of an "active" property for a collider. Colliders do have an "enabled" property, so you may want:
Start.enabled = true;
Finally you set "pressed = true" in the OnMouseUp() routine, but you check it in the OnMouseDown(). This means that the code in OnMouseDown() will only get executed on the second press of the mouse button (and on every press thereafter).
Your answer
Follow this Question
Related Questions
Set child gameobject active? 1 Answer
How to block dragging if collider hits 1 Answer
Trigger Enter and Exit not working properly? 2 Answers
Object push character controller 2 Answers
Game laggs when player comes into contact with enemy. 1 Answer