Added a grid background for building
This commit is contained in:
51
Assets/Scripts/UI/GridViewController.cs
Normal file
51
Assets/Scripts/UI/GridViewController.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Fruitomation.UI
|
||||
{
|
||||
[RequireComponent(typeof(Image))]
|
||||
public class GridViewController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Texture2D SourceTexture;
|
||||
[SerializeField] private int Cols;
|
||||
[SerializeField] private int Rows;
|
||||
|
||||
private Image Image;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Texture2D tiled = TileTexture(SourceTexture, Cols, Rows);
|
||||
Sprite sprite = Sprite.Create
|
||||
(
|
||||
tiled,
|
||||
new Rect(0, 0, tiled.width, tiled.height),
|
||||
new Vector2(0.5f, 0.5f)
|
||||
);
|
||||
|
||||
Image = GetComponent<Image>();
|
||||
Image.color = Color.white;
|
||||
Image.sprite = sprite;
|
||||
}
|
||||
|
||||
private static Texture2D TileTexture(Texture2D source, int cols, int rows)
|
||||
{
|
||||
int srcW = source.width;
|
||||
int srcH = source.height;
|
||||
Texture2D result = new(srcW * cols, srcH * rows);
|
||||
|
||||
Color[] srcPixels = source.GetPixels();
|
||||
|
||||
for (int row = 0; row < rows; row++)
|
||||
for (int col = 0; col < cols; col++)
|
||||
{
|
||||
result.SetPixels(col * srcW, row * srcH, srcW, srcH, srcPixels);
|
||||
}
|
||||
|
||||
result.Apply();
|
||||
return result;
|
||||
}
|
||||
|
||||
private void Update() =>
|
||||
Image.enabled = GameStateController.Is(GameState.Building);
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/UI/GridViewController.cs.meta
Normal file
3
Assets/Scripts/UI/GridViewController.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0d75ec91748845a48c06619878c5b1f0
|
||||
timeCreated: 1774895096
|
||||
Reference in New Issue
Block a user