예제 #1
0
    void PlaceCursor(PointerEventData eventData)
    {
        var pos = new Vector2(eventData.position.x - picker.hsvImage.rectTransform.position.x, picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y - (picker.hsvImage.rectTransform.position.y - eventData.position.y));

        // Debug.Log(pos);
        pos.x /= picker.hsvImage.rectTransform.rect.width * picker.hsvImage.transform.lossyScale.x;
        pos.y /= picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y;

        pos.x = Mathf.Clamp(pos.x, 0, .9999f);  //1 is the same as 0
        pos.y = Mathf.Clamp(pos.y, 0, .9999f);

        //Debug.Log(pos);
        picker.MoveCursor(pos.x, pos.y);
    }
    public void ScrollValueChanged(Vector2 value)
    {
        //if (scrollRect.Dragging == false)
        //  return;

        var position = rectTransform.localPosition;

        position.x = Mathf.Clamp(position.x, -parentPanel.sizeDelta.x / 2, parentPanel.sizeDelta.x / 2);
        position.y = Mathf.Clamp(position.y, -parentPanel.sizeDelta.y / 2, parentPanel.sizeDelta.y / 2);
        rectTransform.localPosition = position;

        //scroll position time
        position.x += parentPanel.sizeDelta.x / 2;
        position.y += parentPanel.sizeDelta.y / 2;
        position.x /= parentPanel.sizeDelta.x;
        position.y /= parentPanel.sizeDelta.y;

        ////Debug.Log(position.x + " " + position.y);

        picker.MoveCursor(position.x, position.y, true);
    }