public void Create(FightCtllerView ctl, FightGrid grid) { m_ctller = ctl; m_fight_grid = grid; gameObject.layer = (int)UnityLayer.UI; Vector2 min = new Vector2(float.MaxValue, float.MaxValue); Vector2 max = new Vector2(float.MinValue, float.MinValue); m_units = new Unit[FightGrid.UnitCount.Y, FightGrid.UnitCount.X]; for (int y = 0; y < FightGrid.UnitCount.Y; ++y) { for (int x = 0; x < FightGrid.UnitCount.X; ++x) { GameObject obj_unit = ResMgr.Instance.CreateGameObject("Fight/GridUnit", gameObject); obj_unit.transform.localPosition = grid.Units[y, x].Position; FightGridUnitView uv = obj_unit.GetComponent <FightGridUnitView>(); uv.Create(this, grid.Units[y, x]); m_units[y, x] = new Unit(new Int2D(x, y), uv); min.x = Mathf.Min(min.x, grid.Units[y, x].Position.x - FightGrid.UnitSize / 2); min.y = Mathf.Min(min.y, grid.Units[y, x].Position.y - FightGrid.UnitSize / 2); max.x = Mathf.Max(max.x, grid.Units[y, x].Position.x + FightGrid.UnitSize / 2); max.y = Mathf.Max(max.y, grid.Units[y, x].Position.y + FightGrid.UnitSize / 2); } } /* * BoxCollider cld = gameObject.AddComponent<BoxCollider>(); * cld.center = min + (max - min) / 2; * cld.size = (max - min); */ SetVisible(false); m_fight_grid.OnAddCreature += OnAddCreature; m_fight_grid.OnRemoveCreature += OnRemoveCreature; }
public Unit(Int2D idx, FightGridUnitView uv) { Index = idx; UnitView = uv; }