Raycast + Collider + Mouse
Hi Everyone. A rookie is seeking for help concerning the following:
In my scene I have:
 1. a Knob with a ParentScript attached.
 2. a 3 selectable areas identified by 3 empty GameObjects (BoxCollider), each of them sending a variable to the ParentScript when hit by the Mouse.
 3. each of the BoxColliders defines the relative rotation of the Parent (the Knob). 
Now... the logic doesn't work...and I do not understand where is my mistake... since 1 month... I really appreciate a help to explain my error...
When the Mouse hits the OPEN Collider, the Knob goes to other position instead of remaining in OPEN; as well the functionality of the Mouse switches from OPEN to SHUT...
Ok, basically a rookie disaster... 
Thanks in advance!
here is the code:
 public class ParentScript: MonoBehaviour {
 
     public int posCounter =1;
 
     public void OnMouseDown (ChildScript childScript)
         {} 
 
 }
 
                public class ChildScript: MonoBehaviour 
 {
 
     //public GameObject PackFlowKnob;
     public Vector3 hiRotKnobAngleEnd = new Vector3 (0 ,0, -54.2f);
     public Vector3 normRotKnobAngleEnd = new Vector3 (0 ,0, 0);
     public Vector3 loRotKnobAngleEnd = new Vector3 (0 ,0, 54.2f);
     public GameObject objectHit ;
     public Camera main;
 
 
 
     void OnMouseDown ()
     {
 
         transform.parent.GetComponent<ParentScript>().OnMouseDown(this);
 
         RaycastHit hit= new RaycastHit ();
         Ray ray = main.ScreenPointToRay(Input.mousePosition);
 
 
         if (Physics.Raycast (ray, out hit)) {
 
             Transform objectHit = hit.transform;
 
             //Debug.Log ("objectHit name " + objectHit + " ... objectHit.tag " + objectHit.tag);
 
             if ((objectHit.name == "Open") && (transform.parent.GetComponent<ParentScript>().posCounter != 2)) { 
 
                 transform.parent.rotation = Quaternion.Euler (hiRotKnobAngleEnd);
 
                 //Debug.Log ("Open pos: " + objectHit);
                 //Debug.Log (transform.parent.GetComponent<ParentScript> ().posCounter);
                 //Debug.Log ("right " + transform.parent.rotation + " and ObjHit " + objectHit.name);
 
                 this.transform.parent.GetComponent<ParentScript>().posCounter = 2;
                 objectHit = null ;
 
                 return;
             }
 
 
             if  ((objectHit.name == "Shut") && (transform.parent.GetComponent<ParentScript>().posCounter != 0)) {
                 
 
 
                 transform.parent.rotation = Quaternion.Euler (loRotKnobAngleEnd);
 
                 //Debug.Log ("Shut pos: " + objectHit);
                 //Debug.Log ("Left " + transform.parent.rotation + " and ObjHit " + objectHit.name);
                 //Debug.Log (transform.parent.GetComponent<ParentScript> ().posCounter);
 
                 this.transform.parent.GetComponent<ParentScript>().posCounter = 0;
                 objectHit = null;                
 
                 return;
             }
 
             if ((objectHit.name == "Auto") && (transform.parent.GetComponent<ParentScript>().posCounter == 1)) {
                 
                 transform.parent.rotation = Quaternion.Euler (normRotKnobAngleEnd);
 
                 //Debug.Log ("Auto pos: " + objectHit);
                 //Debug.Log ("Center " + transform.parent.rotation + " and ObjHit " + objectHit.name);
                 //Debug.Log (transform.parent.GetComponent<ParentScript> ().posCounter);
 
                 this.transform.parent.GetComponent<ParentScript>().posCounter = 1;
                 objectHit = null ;
 
                 return;
             } 
 
         }
 
     }
 }  
 
              Your answer
 
             Follow this Question
Related Questions
Create a custom polygon collider based on overlapping ogjects 0 Answers
Raycast not detecting? 0 Answers
Laser Raycast collision point - invert collider 0 Answers
Resize a one child object with raycasting or collision 0 Answers
Collide with an infinite plane 0 Answers