public void Grab(GameObject Hand) { //set Parent transform.parent = Hand.transform; //setup Rigidbody //__Rigidbody.useGravity = false; __Rigidbody.constraints = RigidbodyConstraints.FreezeAll; //set Target Transform __TargetPosition = transform.localPosition; __TargetRotation = transform.localEulerAngles; //set Logic _logic = _logic_grabbed; }
public void Release(Vector3 velocity) { //if it is already released, continue; if (transform.parent == __ReleasedParent) { return; } //set Parent transform.parent = __ReleasedParent; //setup Rigidbody //__Rigidbody.useGravity = true; __Rigidbody.constraints = RigidbodyConstraints.None; __Rigidbody.velocity = velocity; __Rigidbody.AddTorque(Random.rotation.eulerAngles * 0.1f); //set Logic _logic = _logic_released; }