void OnTriggerStay(Collider other) { ControlTrigger trigger = other.transform.GetComponent <ControlTrigger>(); if (trigger == null) { return; } if (trigger.IsPressed()) { if (grabbedState != GrabbedState.Grabbed) { offset = buttonTransform.position - other.transform.position; grabbedState = GrabbedState.Grabbed; SetHighlightGrabbed(); } } else { if (grabbedState != GrabbedState.Hovered) { grabbedState = GrabbedState.Hovered; SetHighlightHovered(); } return; } if (OnSliderMoveHanders != null) { OnSliderMoveHanders(this); } Vector3 contact = other.transform.position; Vector3 completeSlide = sliderEnd.position - sliderStart.position; Vector3 amountSlide = Vector3.Project((contact + offset) - sliderStart.position, completeSlide.normalized); float value = amountSlide.magnitude / completeSlide.magnitude; if (Vector3.Distance(sliderStart.position + amountSlide, sliderEnd.position) > Vector3.Distance(sliderStart.position, sliderEnd.position)) { value = 0; } else if (value > 1) { value = 1; } model.SetValue(value); }
public void OnEvent(Events.ResetPlayerEvent e) { scaleModel.SetValue(0.1f); rotateModel.SetValue(0); }