- Home /
trigger is not working
it will not trigger on are off and not sure what i did wrong
var n: Transform;
var s: Transform;
var w: Transform;
var e: Transform;
var nw: Transform;
var ne: Transform;
var sw: Transform;
var se: Transform;
// Speed in units per sec.
var speed:float = 5.0f;
var i = 0;
var x = 0;
var q = 250;
var def : boolean = true;
function Start()
{
target = n;
}
function Update ()
{
// Move our position a step closer to the target.
transform.position = Vector3.MoveTowards(transform.position, target.position, speed*Time.deltaTime);
if(!def)
{
i += 1;
if(i == q)
{
x = Random.Range(0,9);
i = 0;
}
if(x == 1)
{
target = n;
}
if(x == 2)
{
target = s;
}
if(x == 3)
{
target = w;
}
if(x == 4)
{
target = e;
}
if(x == 5)
{
target = ne;
}
if(x == 6)
{
target = nw;
}
if(x == 7)
{
target = se;
}
if(x == 8)
{
target = sw;
}
}
if(def)
{
target = defa;
}
}
function OnTriggerEnter(other : Collider)
{
if(other.tag == "boarder")
{
def = false;
}
}
function OnTriggerExit(other : Collider)
{
if(other.tag == "boarder")
{
def = true;
}
}
$$anonymous$$arked the Trigger button on the collider?
i figured it out i forgot 2 put a collider on the defa object
Couple of things to speed up your script, use an array for your directions.
At the moment, you check the value of x and then pass a value for target. First off, since you cannot have two directions, you should use if/else if so that when one is found others are skipped. In your code, if the first one is right, all others are also checked even though they cannot be.
With an array, you set it all in the Start and then you go as:
if(!def)
target = myArray[x];
And this is it. Also, in your code, 0 is not taken care.
#pragma strict
// The target marker.
var defa: Transform;
var target: Transform;
var n: Transform;
var s: Transform;
var w: Transform;
var e: Transform;
var nw: Transform;
var ne: Transform;
var sw: Transform;
var se: Transform;
// Speed in units per sec.
var speed:float = 5.0f;
var i = 0;
var x = 0;
var q = 250;
var def : boolean = true;
function Start()
{
target = n;
}
function Update ()
{
// $$anonymous$$ove our position a step closer to the target.
transform.position = Vector3.$$anonymous$$oveTowards(transform.position, target.position, speed*Time.deltaTime);
if(x == 0)
{
speed = 2;
target = defa;
}
if(!def)
{
speed = 1.5;
i += 1;
if(i == q)
{
x = Random.Range(0,9);
i = 0;
}
if(x == 1)
{
target = n;
}
if(x == 2)
{
target = s;
}
if(x == 3)
{
target = w;
}
if(x == 4)
{
target = e;
}
if(x == 5)
{
target = ne;
}
if(x == 6)
{
target = nw;
}
if(x == 7)
{
target = se;
}
if(x == 8)
{
target = sw;
}
}
if(def)
{
i = 0;
x = 0;
}
}
function OnTriggerEnter(other : Collider)
{
if(other.tag == "boarder")
{
def = false;
}
}
function OnTriggerExit(other : Collider)
{
if(other.tag == "boarder")
{
def = true;
}
}
Your answer
Follow this Question
Related Questions
move camera when it collides with a trigger 1 Answer
transform.position not executed with OnTrigger2D 1 Answer
Collecting Array items in order 1 Answer
Trigger collision detection problem 0 Answers