Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class TileType : MonoBehaviour
- {
- public LayerMask Tile;
- private bool tileIsUp;
- private bool tileIsDown;
- private bool tileIsLeft;
- private bool tileIsRight;
- private bool rendered;
- public Sprite[] sprites;
- private void Update()
- {
- //Ensure this only runs once the level has been built
- if (LevelGeneration.Instance.stopGeneration && rendered == false)
- {
- RaycastHit2D tileUp = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile); //Cast Up
- RaycastHit2D tileDown = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile); //Cast Down
- RaycastHit2D tileLeft = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile); //Cast Left
- RaycastHit2D tileRight = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile); //Cast Right
- //Identify which tiles it has found
- if (tileUp)
- {
- tileIsUp = true;
- }
- if (tileDown)
- {
- tileIsDown = true;
- }
- if (tileLeft)
- {
- tileIsLeft = true;
- }
- if (tileRight)
- {
- tileIsRight = true;
- }
- //Set the sprite according to which tiles are true
- //If tile is down, left and right, TOP
- if (tileIsDown && tileIsLeft && tileIsRight)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[0];
- }
- //If tile is up, left and right, BOTTOM
- else if (tileIsUp && tileIsLeft && tileIsRight)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[1];
- }
- //If tile is up and down, VERTICAL
- else if (tileIsUp && tileIsDown)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[2];
- }
- //If tile is left and right, HORIZONTAL
- else if (tileIsLeft && tileIsRight)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[3];
- }
- //If tile is left and up, BOTTOMRIGHT CORNER
- else if (tileIsLeft && tileIsUp)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[4];
- }
- //If tile is right and up, BOTTOMLEFT CORNER
- else if (tileIsRight && tileIsUp)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[5];
- }
- //If tile is left and down, TOPRIGHT CORNER
- else if (tileIsLeft && tileIsDown)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[6];
- }
- //If tile is right and down, TOPLEFT CORNER
- else if (tileIsRight && tileIsDown)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[7];
- }
- //If tile is up, down, left and right, MIDDLE
- else if (tileIsUp && tileIsDown && tileIsLeft && tileIsRight)
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[8];
- }
- //If tile is alone, SINGLE
- else
- {
- gameObject.GetComponent<SpriteRenderer>().sprite = sprites[9];
- }
- //Tell the sprite to stop choosing itself
- rendered = true;
- Debug.Log("Rendered");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement