Ejemplo n.º 1
0
    ///创建方块堆
    private void CreateCubes()
    {
        if (m_info == null)
        {
            return;
        }

        ModelCube prefab = Resources.Load <ModelCube>("Prefabs/ModelCube");

        if (prefab == null)
        {
            return;
        }

        m_cubes = new List <ModelCube>();
        for (int i = 0; i < m_info.Cubes.Count; ++i)
        {
            CubeModelData data = m_info.Cubes[i];
            if (data == null)
            {
                continue;
            }

            ModelCube cube = GameObject.Instantiate <ModelCube>(prefab);
            cube.transform.parent        = transform;
            cube.transform.localPosition = data.Pos;
            cube.ModelData = data;
            m_cubes.Add(cube);
            UpdateWHD(cube);
        }
    }
Ejemplo n.º 2
0
    private void StartEditor()
    {
        ModelInfo info = new ModelInfo();

        info.ID = 1;

        CubeModelData cube = new CubeModelData();

        cube.ID = 0;

        info.Cubes.Add(cube);

        CubeModel model = CubeModel.Create(info);

        if (model != null)
        {
            model.transform.parent = Container;
            model.Editable         = true;

            InputMgr.Instance.Status = GameStatus.Editor;
            InputMgr.Instance.Target = model;
        }
    }
Ejemplo n.º 3
0
    public bool AddCube(ModelCube target, CubeFaceType face)
    {
        if (!m_editable)
        {
            return(false);
        }
        ModelCube prefab = Resources.Load <ModelCube>("Prefabs/ModelCube");

        if (prefab == null)
        {
            return(false);
        }

        int     current = 1;
        Vector3 offset  = Vector3.right;

        switch (face)
        {
        case CubeFaceType.Top:
            offset  = Vector3.up;
            current = m_info.Heigth;
            break;

        case CubeFaceType.Bottom:
            offset  = Vector3.down;
            current = m_info.Heigth;
            break;

        case CubeFaceType.Front:
            offset  = Vector3.forward;
            current = m_info.Depth;
            break;

        case CubeFaceType.Back:
            offset  = Vector3.back;
            current = m_info.Depth;
            break;

        case CubeFaceType.Right:
            offset  = Vector3.right;
            current = m_info.Width;
            break;

        case CubeFaceType.Left:
            offset  = Vector3.left;
            current = m_info.Width;
            break;
        }

        if (current >= GameConst.CubeMax)
        {
            return(false);
        }

        CubeModelData data = new CubeModelData();

        data.Pos = target.ModelData.Pos + offset;
        m_info.Cubes.Add(data);

        ModelCube cube = GameObject.Instantiate <ModelCube>(prefab);

        cube.transform.parent        = transform;
        cube.transform.localPosition = data.Pos;
        cube.ModelData = data;
        m_cubes.Add(cube);

        UpdateWHD(cube);
        return(true);
    }