Advertisement
Guest User

tileRenderer

a guest
Oct 14th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.68 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class TileType : MonoBehaviour
  6. {
  7.     public LayerMask Tile;
  8.     private bool tileIsUp;
  9.     private bool tileIsDown;
  10.     private bool tileIsLeft;
  11.     private bool tileIsRight;
  12.     private bool rendered;
  13.  
  14.     public Sprite[] sprites;
  15.  
  16.     private void Update()
  17.     {
  18.         //Ensure this only runs once the level has been built
  19.         if (LevelGeneration.Instance.stopGeneration && rendered == false)
  20.         {
  21.             RaycastHit2D tileUp = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile);          //Cast Up
  22.             RaycastHit2D tileDown = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile);          //Cast Down
  23.             RaycastHit2D tileLeft = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile);          //Cast Left
  24.             RaycastHit2D tileRight = Physics2D.Raycast(transform.position, Vector2.down, 1f, Tile);          //Cast Right
  25.  
  26.             //Identify which tiles it has found
  27.             if (tileUp)
  28.             {
  29.                 tileIsUp = true;
  30.             }
  31.  
  32.             if (tileDown)
  33.             {
  34.                 tileIsDown = true;
  35.             }
  36.  
  37.             if (tileLeft)
  38.             {
  39.                 tileIsLeft = true;
  40.             }
  41.  
  42.             if (tileRight)
  43.             {
  44.                 tileIsRight = true;
  45.             }
  46.  
  47.             //Set the sprite according to which tiles are true
  48.  
  49.             //If tile is down, left and right, TOP
  50.             if (tileIsDown && tileIsLeft && tileIsRight)
  51.             {
  52.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[0];
  53.             }
  54.             //If tile is up, left and right, BOTTOM
  55.             else if (tileIsUp && tileIsLeft && tileIsRight)
  56.             {
  57.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[1];
  58.             }
  59.             //If tile is up and down, VERTICAL
  60.             else if (tileIsUp && tileIsDown)
  61.             {
  62.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[2];
  63.             }
  64.             //If tile is left and right, HORIZONTAL
  65.             else if (tileIsLeft && tileIsRight)
  66.             {
  67.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[3];
  68.             }
  69.             //If tile is left and up, BOTTOMRIGHT CORNER
  70.             else if (tileIsLeft && tileIsUp)
  71.             {
  72.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[4];
  73.             }
  74.             //If tile is right and up, BOTTOMLEFT CORNER
  75.             else if (tileIsRight && tileIsUp)
  76.             {
  77.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[5];
  78.             }
  79.             //If tile is left and down, TOPRIGHT CORNER
  80.             else if (tileIsLeft && tileIsDown)
  81.             {
  82.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[6];
  83.             }
  84.             //If tile is right and down, TOPLEFT CORNER
  85.             else if (tileIsRight && tileIsDown)
  86.             {
  87.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[7];
  88.             }
  89.             //If tile is up, down, left and right, MIDDLE
  90.             else if (tileIsUp && tileIsDown && tileIsLeft && tileIsRight)
  91.             {
  92.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[8];
  93.             }
  94.             //If tile is alone, SINGLE
  95.             else
  96.             {
  97.                 gameObject.GetComponent<SpriteRenderer>().sprite = sprites[9];
  98.             }
  99.  
  100.             //Tell the sprite to stop choosing itself
  101.             rendered = true;
  102.  
  103.             Debug.Log("Rendered");
  104.         }
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement