///创建方块堆 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); } }
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; } }
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); }