public void Init(TrapAOE effectAOE, TrapAOE blockAOE) { foreach (var pos in Helper.PositionsFromAOE(effectAOE, Vector2Int.zero)) { var highlightPrefab = Instantiate(m_effectHighlightPrefab); highlightPrefab.transform.SetParent(m_effectHighlightContainer); highlightPrefab.transform.localPosition = Helper.ToVector3Int(pos); } foreach (var pos in Helper.PositionsFromAOE(blockAOE, Vector2Int.zero)) { var highlightPrefab = Instantiate(m_blockHighlightPrefab); highlightPrefab.transform.SetParent(m_blockHighlightContainer); highlightPrefab.transform.localPosition = Helper.ToVector3Int(pos); } }
public static List <Vector2Int> PositionsFromAOE(TrapAOE aoe, Vector2Int pos) { var list = new List <Vector2Int>(); list.Add(pos); switch (aoe) { case TrapAOE.Point: break; case TrapAOE.LittleLineHorizontal: list.Add(pos + Vector2Int.right); break; case TrapAOE.LineHorizontal: list.Add(pos + Vector2Int.left); list.Add(pos + Vector2Int.right); break; case TrapAOE.LineVertical: list.Add(pos + Vector2Int.up); list.Add(pos + Vector2Int.down); break; case TrapAOE.Down: list.Add(pos + Vector2Int.down); break; case TrapAOE.Cross: list.Add(pos + Vector2Int.left); list.Add(pos + Vector2Int.right); list.Add(pos + Vector2Int.up); list.Add(pos + Vector2Int.down); break; } return(list); }