public void SetType(TileType type, bool forceUpdate = false) { if (type == oldType && !forceUpdate) { return; } oldType = type; Sprite[] sprites = GetSprites(type); if (!spriteRenderer) { spriteRenderer = GetComponent <SpriteRenderer>(); } if (!spriteRenderer) { Debug.Log("Fatal: Missing tile's SpriteRenderer!"); return; } if (sprites.Length < 1) { Debug.Log("Fatal: Couldn't find Sprites!"); return; } // Ist NICHT slime, aber wird slime if (type == TileType.SLIME && this.type != TileType.SLIME) { gameObject.AddComponent <SlimeTile>(); } else if (type != TileType.SLIME && this.type == TileType.SLIME) // Ist slime, und verliert diesen state { SlimeTile slimeTile = GetComponent <SlimeTile>(); if (slimeTile) { Destroy(slimeTile); } } this.type = type; spriteRenderer.sprite = sprites[0]; for (int i = 1; i < sprites.Length; i++) { SpriteRenderer r = edges[i - 1].GetComponent <SpriteRenderer>(); if (r && sprites[i]) { r.sprite = sprites[i]; } } RecalculateEdges(); RecalculateNeighbouringEdges(); return; }
public void OnAwake() { spriteRenderer = GetComponent <SpriteRenderer>(); if (!player) { player = FindObjectOfType <Player>(); } if (type == TileType.SLIME) { SlimeTile slimeTile = GetComponent <SlimeTile>(); if (!slimeTile) { gameObject.AddComponent <SlimeTile>(); } } SetType(type, true); }