Ejemplo n.º 1
0
    private void HandleDragCameraEvent(GameObject obj)
    {
        /*注释的方案是通过偏移来计算的*/
//        Vector3 temp = obj.transform.position - mDragMovePos;
//
//        /*获取制定坐标的网格数据. 这里可以自己添加famecount 来控制帧率*/
//        mOriginX += temp.x;
//        mOriginY += temp.y;
//
//        /*整理数据*/
//        mCurNetDataList.Clear();
//        List<NetData> netDataList = NetDataManager.GetNetDataList(mOriginX, mOriginY, mCameraMove.mCameraWidth, mCameraMove.mCameraHeight);
//        if (netDataList != null)
//            mCurNetDataList.AddRange(netDataList);
//
//        DrawMap(netDataList);
//
//        /*记录上一次的位置*/
//        mDragMovePos = obj.transform.position;

        /*通过估算设置*/
        float fTempW = 0f;

        mOriginX = -GetRealFloat(mCameraMove.mCameraWidth / 2 - mCameraMove.transform.position.x);
        if (Mathf.Abs(mOriginX) > Mathf.Abs(mCameraMove.mCameraWidth / 2 - mCameraMove.transform.position.x))
        {
            fTempW = 1.0f;
        }

        float fTempH = 0f;

        mOriginY = -GetRealFloat(mCameraMove.mCameraHeight / 2 - mCameraMove.transform.position.y);
        if (Mathf.Abs(mOriginY) > Mathf.Abs(mCameraMove.mCameraHeight / 2 - mCameraMove.transform.position.y))
        {
            fTempH = 1.0f;
        }

        /*整理数据*/
        mCurNetDataList.Clear();
        List <NetData> netDataList = NetDataManager.GetNetDataList(mOriginX, mOriginY, mCameraMove.mCameraWidth + fTempW, mCameraMove.mCameraHeight + fTempH);

        if (netDataList != null)
        {
            mCurNetDataList.AddRange(netDataList);
        }

        DrawMap(netDataList);
    }
Ejemplo n.º 2
0
    void Start()
    {
        /*初始化后台网格数据*/
        NetDataManager.InitNetData();

        /*检查相机脚本*/
        if (mCameraMove == null)
        {
            Debug.LogError("您忘记挂在相机脚本了,请在Inspector窗口挂载CameraMove脚本!!!!");
        }

        /*相机回调注册*/
        mCameraMove.onDragCameraStart += HandleDragCameraStartEvent;
        mCameraMove.onDragCamera      += HandleDragCameraEvent;
        mCameraMove.onDragCameraEnd   += HandleDragCameraEndEvent;

        /*获取制定坐标的网格数据*/
        float fTempW = 0f;

        mOriginX = -GetRealFloat(mCameraMove.mCameraWidth / 2);
        if (Mathf.Abs(mOriginX) > Mathf.Abs(mCameraMove.mCameraWidth / 2))
        {
            fTempW = 1.0f;
        }

        float fTempH = 0f;

        mOriginY = -GetRealFloat(mCameraMove.mCameraHeight / 2);
        if (Mathf.Abs(mOriginY) > Mathf.Abs(mCameraMove.mCameraHeight / 2))
        {
            fTempH = 1.0f;
        }

        List <NetData> netDataList = NetDataManager.GetNetDataList(mOriginX, mOriginY, mCameraMove.mCameraWidth + fTempW, mCameraMove.mCameraHeight + fTempH);

        if (netDataList != null)
        {
            mCurNetDataList.AddRange(netDataList);
        }

        /*绘制地图*/
        DrawMap(netDataList);
    }