// Use this for initialization void Awake () { block = GetComponent<Block> (); slider = GetComponent<BlockSlider> (); faller = GetComponent<BlockFaller> (); clearer = GetComponent<BlockClearer> (); raiser = GameObject.Find ("Board").GetComponent<BoardRaiser> (); spriteRenderer = transform.Find ("Sprite").GetComponent<SpriteRenderer> (); matchGradientRenderer = transform.Find ("Match Gradient").GetComponent<SpriteRenderer> (); particles = transform.Find ("Match Particles").GetComponent<ParticleSystem> (); additiveLayer = transform.Find ("Additive Layer").GetComponent<SpriteRenderer> (); }
public void CreateBlock(PuzzleSlide.Block block, RectTransform pos, bool target = false) { RectangleBorder border; Color borderColour = Color.yellow; Color bgColour = new Color(0.6f, 0.6f, 0f, 1f); // Create object GameObject blockGO = new GameObject("puzzleBlock"); if (block.target) { borderColour = Color.red; bgColour = new Color(0.8f, 0.0f, 0f, 1f); } blockGO.tag = "dialog"; //Game game = Game.Get(); blockGO.transform.parent = pos; RectTransform transBg = blockGO.AddComponent <RectTransform>(); transBg.pivot = Vector2.up; transBg.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, (block.ypos * 3f * UIScaler.GetPixelsPerUnit()) + 0.1f, ((block.ylen + 1) * 3f * UIScaler.GetPixelsPerUnit()) - 0.2f); transBg.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, (block.xpos * 3f * UIScaler.GetPixelsPerUnit()) + 0.1f, ((block.xlen + 1) * 3f * UIScaler.GetPixelsPerUnit()) - 0.2f); blockGO.AddComponent <CanvasRenderer>(); border = new RectangleBorder(blockGO.transform, borderColour, new Vector2((block.xlen + 1) * 3f, (block.ylen + 1) * 3f)); UnityEngine.UI.Image uiImage = blockGO.AddComponent <UnityEngine.UI.Image>(); uiImage.color = bgColour; BlockSlider slider = blockGO.AddComponent <BlockSlider>(); slider.block = block; slider.win = this; }
void SetupSlide(Block block, BlockSlider.SlideDirection direction) { // Save off the state of the block that this one will swap with Block targetBlock = null; if (direction == BlockSlider.SlideDirection.Left) { targetBlock = board.Blocks [block.X - 1, block.Y]; } if (direction == BlockSlider.SlideDirection.Right) { targetBlock = board.Blocks [block.X + 1, block.Y]; } BlockSlider slider = block.GetComponent<BlockSlider>(); slider.TargetState = targetBlock.State; slider.TargetType = targetBlock.Type; }