public void Grab(bool value, MirrorDudeController controller) { _grabbedController = value ? controller : null; if (!value) { transform.position = _ogPos; } }
public void Press(bool value, MirrorDudeController controller) { if (value) { transform.localScale = _defaultScale * .9f; GetComponent <Renderer>().material.color = _defaultColor + Color.white * .5f; } else { transform.localScale = _defaultScale; GetComponent <Renderer>().material.color = _defaultColor; } }
private void Update() { if (!_grabbedController) { return; } Vector3 controllerPos = _grabbedController.transform.position; switch (direction) { case SliderDirection.downToUp: if (controllerPos.y < _ogPos.y) { break; } transform.position = new Vector3( transform.position.x, controllerPos.y, transform.position.z); break; case SliderDirection.upToDown: if (controllerPos.y > _ogPos.y) { break; } transform.position = new Vector3( transform.position.x, controllerPos.y, transform.position.z); break; case SliderDirection.leftToRight: if (controllerPos.x < _ogPos.x) { break; } transform.position = new Vector3( controllerPos.x, transform.position.y, transform.position.z); break; case SliderDirection.rightToLeft: if (controllerPos.x > _ogPos.x) { break; } transform.position = new Vector3( controllerPos.x, transform.position.y, transform.position.z); break; case SliderDirection.frontToBack: if (controllerPos.z < _ogPos.z) { break; } transform.position = new Vector3( transform.position.x, transform.position.y, controllerPos.z); break; } if (!(Vector3.Distance(transform.position, _ogPos) > sliderLength)) { return; } OnActivation.Invoke(); transform.position = _ogPos; _grabbedController = null; GetComponent <Renderer>().material.color = _defaultColor; transform.localScale = _defaultScale; }