void CreateBlockList() { ShapeBlocks = new List <ShapeBlock> (); List <Transform> shapeAllBlocks = transform.GetComponentsInChildren <Transform> ().ToList(); if (shapeAllBlocks.Contains(transform)) { shapeAllBlocks.Remove(transform); } foreach (Transform block in shapeAllBlocks) { string[] blockNameSplit = block.name.Split('-'); if (blockNameSplit.Length == 3) { int rowID = blockNameSplit [1].TryParseInt(); int columnID = blockNameSplit [2].TryParseInt(); ShapeBlock thisBlock = new ShapeBlock(block, rowID, columnID); if (!ShapeBlocks.Contains(thisBlock)) { ShapeBlocks.Add(thisBlock); } } } }
void Start() { CreateBlockList(); firstBlock = ShapeBlocks [0]; blockImage = firstBlock.block.GetComponent <Image>().sprite; startOffsetX = firstBlock.rowID; startOffsetY = firstBlock.columnID; }
public void CrateBlock(int color_id = 0, int _shapeID = 0) { shapeID = _shapeID; CreateBlockList(color_id); //첫번째 블럭으로 위치 계산 firstBlock = shapeBlocks[0]; blockImage = firstBlock.block.GetComponent <Image>().sprite; startOffsetX = firstBlock.rowID; startOffsetY = firstBlock.columnID; }
public void Set_Rotation() { Rotate(); CreateBlockList(this.colorID); //첫번째 블럭으로 위치 계산 firstBlock = shapeBlocks[0]; blockImage = firstBlock.block.GetComponent <Image>().sprite; startOffsetX = firstBlock.rowID; startOffsetY = firstBlock.columnID; }
/// <summary> /// 자식 블럭 생성 /// </summary> void CreateBlockList(int color_id = 0) { shapeBlocks = new List <ShapeBlock>(); List <Transform> shapeAllBlocks = transform.GetComponentsInChildren <Transform>().ToList(); //내 자신 지우기 if (shapeAllBlocks.Contains(transform)) { shapeAllBlocks.Remove(transform); } int random_colorID = UnityEngine.Random.Range(0, 6); colorID = random_colorID + 1; if (color_id != 0) { colorID = color_id; } //자식 블럭 좌표 저장 foreach (Transform block in shapeAllBlocks) { string[] blockNameSplit = block.name.Split('-'); block.GetComponent <Image>().sprite = UIManager.Instance.Sp_Blocks[colorID - 1]; if (blockNameSplit.Length == 3) { int rowID = int.Parse(blockNameSplit[1]); int columnID = int.Parse(blockNameSplit[2]); ShapeBlock thisBlock = new ShapeBlock(block, rowID, columnID, colorID); if (!shapeBlocks.Contains(thisBlock)) { shapeBlocks.Add(thisBlock); } } } }
public static void TestPrototype() { AbstractFactory abstractShapeFactory = FactoryProducer.GetFactory(true); BaseShape shape = abstractShapeFactory.CreateEntityShape(Shape.HealthCrystal, 2, 5); BaseShape shallow = shape.Clone(); // Shallow Copy BaseShape deep = shape.DeepCopy(); // Deep Copy ShapeBlock ba = shape.GetShapes().First(); ShapeBlock sh = shallow.GetShapes().First(); ShapeBlock de = deep.GetShapes().First(); Logging.Instance.Write("Before"); Logging.Instance.Write("Base: " + shape.GetShapes().GetHashCode().ToString() + "(OffsetX: " + ba.OffsetX + ")"); Logging.Instance.Write("Shallow: " + shallow.GetShapes().GetHashCode().ToString() + " (OffsetX: " + sh.OffsetX + ")"); Logging.Instance.Write("Deep: " + deep.GetShapes().GetHashCode().ToString() + " (OffsetX: " + de.OffsetX + ")"); ba.OffsetX = 10; Logging.Instance.Write("After"); Logging.Instance.Write("Base: " + shape.GetShapes().GetHashCode().ToString() + " (OffsetX: " + ba.OffsetX + ")"); Logging.Instance.Write("Shallow: " + shallow.GetShapes().GetHashCode().ToString() + " (OffsetX: " + sh.OffsetX + ")"); Logging.Instance.Write("Deep: " + deep.GetShapes().GetHashCode().ToString() + " (OffsetX: " + de.OffsetX + ")"); }