- Home /
BoxCollider error with nothing wrong? C#
I keep getting this error message, but everything runs fine:
The variable `Reach' is assigned but its value is never used
Am I doing something wrong? If so I can't tell because the functionality works fine. Either way any ideas on how I could get rid of this error message?
public class Player : Character
{ public GameObject Arms;//The character's arms. public BoxCollider Reach;//The length of reach.
void Awake()
{
//initialize the box collider to be manipulated.
BoxCollider Reach = (BoxCollider)Arms.collider;
}
// varry the trigger box range in which you can reach
void Reaching (int x,int y,int z,int X,int Y,int Z)
{
Reach.size = new Vector3(x,y,z);//range
Reach.center = new Vector3(X,Y,Z);//placement
}
Any help would be appreciated... I've been writing js. for a few years now, and just started with C# about a month ago so I'm still getting used to the syntax.
Answer by syclamoth · Jan 22, 2012 at 07:15 AM
The problem is this:
BoxCollider Reach = (BoxCollider)Arms.collider;
what is happening here is you are creating a new variable, with the same name and type as one already existing in your class! So, instead of assigning something to the existing variable, it just creates a new one, that disappears as soon as it leaves the scope of Awake! To fix this, just change that line to
Reach = (BoxCollider)Arms.collider;
This way, it will use the existing variable, instead of creating a new one.
The reason it's working properly, is presumably because you have set up 'Reach' in the inspector, and so Unity's serialization is covering up any errors that are being caused by your code.
Your answer
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Multiple Cars not working 1 Answer
Don't Destroy on Load Object and GameData 1 Answer
Game freezes everything when calling WaitForSeconds 1 Answer
Attaching GameObject and ParticleSystem to C# script 1 Answer