I have found a myriad of questions and answers RELATED to this topic, but none of them have worked for me, so I am quite sure that I am misunderstanding something and/or expecting too much, or clicking the wrong box somewhere.
I have a screwdriver. When the tip of the screwdriver collides with a screw I want the screw to become "one" with the screwdriver so that when I rotate the screwdriver, the screw rotates... when I move the screwdriver, the screw goes with it just as if it is now attached to the tip of the screwdriver. (This happens in the real world because the tip of the screwdriver is magnetic). I tried a simple OnTriggerEntered script attached to the screwdriver object, but, although my debug output screams "FLAT Screw detected!!!" nothing else happens. Moving the screwdriver does absolutely nothing to the screw's position in space. The collider on the screwdriver is currently a small capsule collider just around the tip of the business end of the screwdriver.
private void OnTriggerEnter(Collider other)
{
Debug.Log("Enter called.");
if (other.tag.Equals("flat_screw"))
{
Debug.Log("FLAT Screw detected!!!");
other.gameObject.transform.parent = this.transform;
}
}
Any help is much appreciated. I kid you not I have been returning to this problem off and on for countless hours. Days. I am quite sure that I could write some extensive code that MAKES the screw follow the screwdriver around by having the screw notified by the screwdrivers "controller", but I don't want to reinvent the wheel if this basic functionality is already available and easy to implement using Unity's transform system.
CHEERS!
↧