예제 #1
0
    void Update()
    {
        UpdateMiniMap();

        if (minimapBG != null && Input.GetMouseButtonDown(0))
        {
            Ray          cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit[] hits      = Physics.RaycastAll(cameraRay, 2.0f);

            foreach (RaycastHit hitInfo in hits)
            {
                if (hitInfo.transform.gameObject == minimapBG)
                {
                    Vector3 clickOffset = hitInfo.point - minimapBG.transform.position;
                    float   width       = minimapBG.transform.localScale.x;
                    float   height      = minimapBG.transform.localScale.y;

                    clickOffset.x += width / 2.0f;
                    clickOffset.y += height / 2.0f;

                    // Normalize the clickOffset
                    clickOffset.x /= width;
                    clickOffset.y /= height;

                    // Tell the camera to quick-jump.
                    CameraBehavior cameraBehavior = Camera.main.GetComponent <CameraBehavior>();
                    if (cameraBehavior != null)
                    {
                        cameraBehavior.quickJump(clickOffset);
                    }
                }
            }
        }
    }