Пример #1
0
    void OnTriggerExit(Collider other)
    {
        ControlTrigger trigger = other.transform.GetComponent <ControlTrigger>();

        if (trigger != null)
        {
            grabbedState = GrabbedState.None;
            SetHighlightOff();
        }
    }
Пример #2
0
    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);
    }
Пример #3
0
 void SetGrabbedState(GrabbedState grabbedState)
 {
     this.grabbedState = grabbedState;
 }