Ejemplo n.º 1
0
    private void doKeyDir(int dir, bool needDraw)
    {
        if (_selectData != null && _selectData is GSceneElementEditorData)
        {
            GSceneElementEditorData currentSelect = (GSceneElementEditorData)_selectData;

            int x = currentSelect.component.x;
            int z = currentSelect.component.z;

            int nx = x;
            int nz = z;

            switch (dir)
            {
            case 0:
            {
                nx = x + 1;
            }
            break;

            case 1:
            {
                nz = z + 1;
            }
            break;

            case 2:
            {
                nx = x - 1;
            }
            break;

            case 3:
            {
                nz = z - 1;
            }
            break;
            }

            int xNum = _gridShows.GetLength(0);
            int zNum = _gridShows.GetLength(1);

            if (nx >= 0 && nx < xNum && nz >= 0 && nz < zNum)
            {
                GSceneElementEditorData nData = _gridShows[nx, nz];

                selectElement(nData);

                if (needDraw)
                {
                    doGridChange(nData, currentSelect.component.type);
                }
            }
        }
    }
Ejemplo n.º 2
0
    private void doGridChange(GSceneElementEditorData eData, int type)
    {
        if (eData.childObj != null)
        {
            GameObject.DestroyImmediate(eData.childObj);
        }

        GameObject go = createGridShow(type);

        if (go != null)
        {
            go.transform.SetParent(eData.gameObject.transform);
            go.transform.localPosition = Vector3.zero;
            eData.childObj             = go;
        }

        //赋值
        _grids[eData.component.x, eData.component.z] = (byte)type;
        eData.component.type = type;
        _lastType            = type;
    }
Ejemplo n.º 3
0
    private void makeGridShow(int x, int z, int v)
    {
        GameObject grid = GameObject.Instantiate(_gridAsset);

        grid.transform.SetParent(_wallLayer.transform);

        Vector3 vec = grid.transform.position;

        vec.y = 0.01f;

        setVectorByGrid(ref vec, x, z);

        grid.transform.position = vec;

        GGridComponent component = grid.GetComponent <GGridComponent>();

        component.setChangeFunc(onGridChanged);
        component.x    = x;
        component.z    = z;
        component.type = v;

        GSceneElementEditorData eData = new GSceneElementEditorData();

        eData.component  = component;
        eData.gameObject = grid;
        eData.canPick    = false;

        _gridShows[x, z] = eData;
        _gridShowsDicByObj.put(grid, eData);

        GameObject go = createGridShow(v);

        if (go != null)
        {
            go.transform.SetParent(grid.transform);
            go.transform.localPosition = Vector3.zero;
            eData.childObj             = go;
        }
    }
Ejemplo n.º 4
0
    public void onGridChanged(GGridComponent component)
    {
        GSceneElementEditorData eData = _gridShows[component.x, component.z];

        doGridChange(eData, component.type);
    }