Hey, i have been making a un-guided rocket script and have encountered an odd error during ray-casting for collision detection. The ray-cast works perfectly well, but when I try to switch the RayCastHit.collider.tag, Unity Editor throws an inaccessible code error after compiling. I have traced all the code in the script dozens of times over so please dont ask to see more code, i guarantee you, there is nothing else wrong, the function is simply called in an if statement on update and IT WAS WORKING until a day ago. I dont get why I cant “switch(myRaycastHit.collider.tag)”. as far as I can see its a problem with Unity’s compiler or the editor. Any ideas what to do?
//Execute collision side-effects
function CollisionHandler(): boolean
{
//Update next position
UpdatePos();
//Extrapolative raycast collision check
if(Physics.Raycast(transform.position, targetDir, hitInfo, targetDir.magnitude))
{
switch(hitInfo.collider.tag)
{
case "NonPhysicalCollider":
case "Player":
return true;
default:
hitInfo.transform.SendMessage("Hit", hitDamage, SendMessageOptions.DontRequireReceiver);
transform.position = hitInfo.point - (targetDir.normalized / 10);
emitter.Emit();
return false;
}
}
else
{
return true;
}
}
First of all, it’s a warning not an error; you can ignore it.
Second, you DO have unreachable code. Neither of the “break” lines in there will ever be executed. Just get rid of them if you want to get rid of the warning.
…defensive much? Don’t take things so personally, damn. But you do refer to this as an “error” twice in your post.
This wouldn’t be causing any real problems. Your issue is probably somewhere else.
They’re after the “return” lines. The instant you return something (with the exception of “yield return”), the function ends. There’s no way it will ever reach those lines.
yea, yea im aware of that, the lines were left in during messing around trying to get the code to work. EVEN WITH THE LINES REMOVED, there is still an inaccessible code error
sorry for referring to it as an error, i also called a break a function. im tired. but the break lines are not the problem. I have pointed out to you that the switch case scenario is never entered, I have tested this. i wish i never accidentally left the break lines in, but once again im tired.
Now we’re on the same page… the raycast works, I am intending the default commands to be executed 99% of the time, the first two tags(Player and NonPhysicalCollider) are meant to be ignored by the missile. i can print any of the rayCastHit stuff to the debug line, and it has correct values. but the second I type switch(anyGameObjectOrComponent.tag) unity gives an inaccessible code warning