- Home /
comparing strings|easy way.....
Hi, i have a compare tag statement in my OnTriggerEnter.... it look like this:
if(otherTag == "Enemy" || otherTag == "EnemyWall" || otherTag == "EnemyUnion" || otherTag == "EnemyWall2")
but i want to simplify it like this:
if(other.tag == "Enemy"||"EnemyWall"||"EnemyUnion"||"EnemyWall2")
but it dont work....theres any reason why its not working?? or any other way to simplify it??
thanks.
Answer by RealityStudio · Nov 12, 2013 at 02:10 AM
ok i solve it by myself. i just entered every string in a "()" heres how: //from... if(other.tag == "Enemy"||"EnemyWall"||"EnemyUnion"||"EnemyWall2") //to.... if(other.tag == "Enemy"||"EnemyWall"||"EnemyUnion"||"EnemyWall2")
Answer by aldonaletto · Nov 12, 2013 at 02:09 AM
No, this definitely won't work: the operator || means logical OR and only accepts boolean operands. You're already doing this the right way: get the tag in a string variable and compare it to each string - this allocates a string in memory only once per OnTrigger event. An alternative that doesn't allocate a single byte is CompareTag:
function OnTriggerEnter(other: Collider){
if (other.CompareTag("Enemy") || other.CompareTag("EnemyWall") || other.CompareTag("EnemyUnion") || other.CompareTag("EnemyWall2")){
// do something
}
}
You must write a lot more, but apparently the performance is a little better.