Created
June 24, 2016 23:19
-
-
Save codephi/8b8d1216c13690095b9581626891d1bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
[RequireComponent(typeof(SpriteRenderer))] | |
public class RepeatSpriteBoundary : MonoBehaviour | |
{ | |
SpriteRenderer sprite; | |
void Awake() | |
{ | |
sprite = GetComponent<SpriteRenderer>(); | |
if (!SpritePivotAlignment.GetSpriteAlignment(gameObject).Equals(SpriteAlignment.TopRight)) | |
{ | |
Debug.LogError("You forgot change the sprite pivot to Top Right."); | |
} | |
Vector2 spriteSize = new Vector2(sprite.bounds.size.x / transform.localScale.x, sprite.bounds.size.y / transform.localScale.y); | |
GameObject childPrefab = new GameObject(); | |
SpriteRenderer childSprite = childPrefab.AddComponent<SpriteRenderer>(); | |
childPrefab.transform.position = transform.position; | |
childSprite.sprite = sprite.sprite; | |
GameObject child; | |
for (int i = 0, h = (int)Mathf.Round(sprite.bounds.size.y); i * spriteSize.y < h; i++) | |
{ | |
for (int j = 0, w = (int)Mathf.Round(sprite.bounds.size.x); j * spriteSize.x < w; j++) | |
{ | |
child = Instantiate(childPrefab) as GameObject; | |
child.transform.position = transform.position - (new Vector3(spriteSize.x * j, spriteSize.y * i, 0)); | |
child.transform.parent = transform; | |
} | |
} | |
Destroy(childPrefab); | |
sprite.enabled = false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment