8 using System.Collections;
10 namespace Valve.VR.InteractionSystem
15 public GameObject[] colliders;
16 private Vector3[] colliderLocalPositions;
17 private Quaternion[] colliderLocalRotations;
24 rb = GetComponent<Rigidbody>();
26 colliderLocalPositions =
new Vector3[colliders.Length];
27 colliderLocalRotations =
new Quaternion[colliders.Length];
29 for (
int i = 0; i < colliders.Length; ++i )
31 colliderLocalPositions[i] = colliders[i].transform.localPosition;
32 colliderLocalRotations[i] = colliders[i].transform.localRotation;
34 colliders[i].name = gameObject.name +
"." + colliders[i].name;
42 for (
int i = 0; i < colliders.Length; ++i )
44 colliders[i].transform.SetParent( transform );
46 colliders[i].transform.localPosition = colliderLocalPositions[i];
47 colliders[i].transform.localRotation = colliderLocalRotations[i];
49 colliders[i].transform.SetParent( null );
51 FixedJoint fixedJoint = colliders[i].AddComponent<FixedJoint>();
52 fixedJoint.connectedBody = rb;
53 fixedJoint.breakForce = Mathf.Infinity;
54 fixedJoint.breakTorque = Mathf.Infinity;
55 fixedJoint.enableCollision =
false;
56 fixedJoint.enablePreprocessing =
true;
58 colliders[i].SetActive( true );
66 for (
int i = 0; i < colliders.Length; ++i )
68 if ( colliders[i] != null )
70 Destroy( colliders[i].GetComponent<FixedJoint>() );
72 colliders[i].SetActive( false );
81 for (
int i = 0; i < colliders.Length; ++i )
83 Destroy( colliders[i] );