public void Deattach() { MeshRenderer[] mrs = RbVisualProxy.GetComponentsInChildren <MeshRenderer>(); foreach (var mr in mrs) { mr.enabled = true; } if (Rb.name == "KeyboardCase") { Collider[] cols = Rb.GetComponentsInChildren <Collider>(); foreach (var col in cols) { col.enabled = true; } } GameObject.Destroy(Proxy); RbTr.gameObject.layer = RbLayer; Rb = null; RbTr = null; }
public void Attach(Rigidbody rb, Collider collider) { RbVisualProxy = rb.GetComponent <VisualProxy>(); if (RbVisualProxy == null) { return; } if (rb.name == "KeyboardCase") { Collider[] cols = rb.GetComponentsInChildren <Collider>(); foreach (var col in cols) { col.enabled = false; } collider.enabled = true; } Rb = rb; RbTr = rb.transform; RbLayer = rb.gameObject.layer; rb.gameObject.layer = 9; rb.angularDrag = 1.0f; Rb.maxAngularVelocity = 0.1f; OriginalRotation = RbTr.rotation; Proxy = GameObject.Instantiate(RbVisualProxy.Mirror, RbTr.position, RbTr.rotation); MeshRenderer[] mrs = RbVisualProxy.GetComponentsInChildren <MeshRenderer>(); foreach (var mr in mrs) { mr.enabled = false; } TargetPoint = RbTr.position; }