1. 程式人生 > >NGUI 關於大背景用滑鼠點選移動問題

NGUI 關於大背景用滑鼠點選移動問題

float speed = 0.5f;
    Vector2 start, stop;
    Vector2 step;//滑鼠點選移動的向量
    private Vector3 Velocity = Vector3.zero;
    Vector2 pstart, pstop, pstep;
    float border_y, border_x;//攝像機的邊界值
    int curStep, maxStep;
    Transform common;
    public GameObject backGround;
    public GameObject panelPlant;
    Vector2 startPosition, stopPosition;//滑鼠點選開始和結束時的位置
    Vector2 neoPosition;


    // Use this for initialization
    void Start()
    {
   
        startPosition = Input.mousePosition;
        stopPosition = Input.mousePosition;
        neoPosition = new Vector2(-1, -1);
        border_x =60;
        border_y = 120f;
        curStep = 0;
        maxStep = 0;    
    }


  
    // Update is called once per frame
    void Update()
    {


        if (Input.GetMouseButton(0) && UICamera.hoveredObject != null && UICamera.hoveredObject.name == "BackGround")
        {
            stopPosition = Input.mousePosition;
            if (startPosition.x < 0) { startPosition = stopPosition; return; }
            step = startPosition - stopPosition;
            startPosition = stopPosition;
            if (step.x < 2 && step.y < 2 && step.x > -2 && step.y > -2) return;//avoid move when click                   
            step *= 1.3f;
            transform.localPosition = new Vector2(transform.localPosition.x + step.x, transform.localPosition.y + step.y);
            if (transform.localPosition.x < -border_x)
            {
                transform.localPosition = new Vector2(-border_x, transform.localPosition.y);
            }
            if (transform.localPosition.x > border_x)
            {
                transform.localPosition = new Vector2(border_x, transform.localPosition.y);
            }
            if (transform.localPosition.y < -border_y)
            {
                transform.localPosition = new Vector2(transform.localPosition.x, -border_y);
            }
            if (transform.localPosition.y > border_y)
            {
                transform.localPosition = new Vector2(transform.localPosition.x, border_y);
            }
        }
        else if (startPosition.x >= 0) { startPosition = neoPosition; }


        
    }