import successful, grid has visuals
cell values and grid lines are displayed. no interaction available yet.
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
------------------- Code Monkey -------------------
|
||||
|
||||
Thank you for downloading the Code Monkey Utilities
|
||||
I hope you find them useful in your projects
|
||||
If you have any questions use the contact form
|
||||
Cheers!
|
||||
|
||||
unitycodemonkey.com
|
||||
--------------------------------------------------
|
||||
*/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace CodeMonkey.Utils {
|
||||
|
||||
/*
|
||||
* UI Container with multiple bars, useful for displaying one bar with multiple inner bars like success chance and failure chance
|
||||
* */
|
||||
public class UI_BarMultiple {
|
||||
|
||||
private GameObject gameObject;
|
||||
private RectTransform rectTransform;
|
||||
private RectTransform[] barArr;
|
||||
private Image[] barImageArr;
|
||||
private Vector2 size;
|
||||
|
||||
public class Outline {
|
||||
public float size = 1f;
|
||||
public Color color = Color.black;
|
||||
public Outline(float size, Color color) {
|
||||
this.size = size;
|
||||
this.color = color;
|
||||
}
|
||||
}
|
||||
|
||||
public UI_BarMultiple(Transform parent, Vector2 anchoredPosition, Vector2 size, Color[] barColorArr, Outline outline) {
|
||||
this.size = size;
|
||||
SetupParent(parent, anchoredPosition, size);
|
||||
if (outline != null) SetupOutline(outline, size);
|
||||
List<RectTransform> barList = new List<RectTransform>();
|
||||
List<Image> barImageList = new List<Image>();
|
||||
List<float> defaultSizeList = new List<float>();
|
||||
foreach (Color color in barColorArr) {
|
||||
barList.Add(SetupBar(color));
|
||||
defaultSizeList.Add(1f / barColorArr.Length);
|
||||
}
|
||||
barArr = barList.ToArray();
|
||||
barImageArr = barImageList.ToArray();
|
||||
SetSizes(defaultSizeList.ToArray());
|
||||
}
|
||||
|
||||
private void SetupParent(Transform parent, Vector2 anchoredPosition, Vector2 size) {
|
||||
gameObject = new GameObject("UI_BarMultiple", typeof(RectTransform));
|
||||
rectTransform = gameObject.GetComponent<RectTransform>();
|
||||
rectTransform.SetParent(parent, false);
|
||||
rectTransform.sizeDelta = size;
|
||||
rectTransform.anchorMin = new Vector2(0, .5f);
|
||||
rectTransform.anchorMax = new Vector2(0, .5f);
|
||||
rectTransform.pivot = new Vector2(0, .5f);
|
||||
rectTransform.anchoredPosition = anchoredPosition;
|
||||
}
|
||||
|
||||
private void SetupOutline(Outline outline, Vector2 size) {
|
||||
UtilsClass.DrawSprite(outline.color, gameObject.transform, Vector2.zero, size + new Vector2(outline.size, outline.size), "Outline");
|
||||
}
|
||||
|
||||
private RectTransform SetupBar(Color barColor) {
|
||||
RectTransform bar = UtilsClass.DrawSprite(barColor, gameObject.transform, Vector2.zero, Vector2.zero, "Bar");
|
||||
bar.anchorMin = new Vector2(0,0);
|
||||
bar.anchorMax = new Vector2(0,1f);
|
||||
bar.pivot = new Vector2(0,.5f);
|
||||
return bar;
|
||||
}
|
||||
|
||||
public void SetSizes(float[] sizeArr) {
|
||||
if (sizeArr.Length != barArr.Length) {
|
||||
throw new System.Exception("Length doesn't match!");
|
||||
}
|
||||
Vector2 pos = Vector2.zero;
|
||||
for (int i=0; i<sizeArr.Length; i++) {
|
||||
float scaledSize = sizeArr[i] * size.x;
|
||||
barArr[i].anchoredPosition = pos;
|
||||
barArr[i].sizeDelta = new Vector2(scaledSize, 0f);
|
||||
pos.x += scaledSize;
|
||||
}
|
||||
}
|
||||
|
||||
public RectTransform GetBar(int index) {
|
||||
return barArr[index];
|
||||
}
|
||||
|
||||
public Vector2 GetSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void DestroySelf() {
|
||||
UnityEngine.Object.Destroy(gameObject);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user