//生成第x,y位置的区块 计算其区域并赋予 void GenerateMapAt(int x, int y, int depth) { if (regionGeneratedAt(x, y)) { //Debug.Log("地图已经在 ("+x+","+y+")位置生成!"); return; } if (available_regions.Length == 0) { Debug.Log("请设置生成区域数组!"); return; } int maxpower = -1; Region mr = empty_region; int region_seed = seed + x * x_seed + y * y_seed; foreach (Region region in available_regions) { int p = region.getPower(x, y, depth, region_seed); //Debug.Log(p); if (p > maxpower) { mr = region; } } Region r = Instantiate(mr, region_parent) as Region; r.addBlock(x, y); Regions.Add(new Vector2(x, y), r); MapBoundsController mbc = InstantiateBoundsAt(x, y, r.material, r.width); r.mapBoundsController = mbc; }
MapBoundsController InstantiateBounds(float width, float height, float startx, float starty, Material bound_material, float width_multiplier = 1f) { GameObject b = Instantiate(bound, bound_parent); MapBoundsController mbc = b.GetComponent <MapBoundsController>(); mbc.Init(width, height, startx, starty, bound_material, width_multiplier); return(mbc); }
//生成第x,y位置的区块并赋予其区域region void GenerateMapAt(int x, int y, Region region) { if (regionGeneratedAt(x, y)) { //Debug.Log("地图已经在 ("+x+","+y+")位置生成!"); return; } Region r = Instantiate(region, region_parent) as Region; r.addBlock(x, y); Regions.Add(new Vector2(x, y), r); MapBoundsController mbc = InstantiateBoundsAt(x, y, r.material, r.width); r.mapBoundsController = mbc; }
public override void SetTarget(GameObject obj) { mapData = obj.GetComponent <MapBoundsController>(); rect = GetComponent <RectTransform>(); }