import successful, grid has visuals
cell values and grid lines are displayed. no interaction available yet.
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
------------------- 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 UnityEngine;
|
||||
|
||||
namespace CodeMonkey.Utils {
|
||||
|
||||
/*
|
||||
* Bar in the World, great for quickly making a health bar
|
||||
* */
|
||||
public class World_Bar {
|
||||
|
||||
private Outline outline;
|
||||
private GameObject gameObject;
|
||||
private Transform transform;
|
||||
private Transform background;
|
||||
private Transform bar;
|
||||
|
||||
public static int GetSortingOrder(Vector3 position, int offset, int baseSortingOrder = 5000) {
|
||||
return (int)(baseSortingOrder - position.y) + offset;
|
||||
}
|
||||
|
||||
public class Outline {
|
||||
public float size = 1f;
|
||||
public Color color = Color.black;
|
||||
}
|
||||
|
||||
public static World_Bar Create(Vector3 localPosition, Vector3 localScale, Color? backgroundColor, Color barColor, float sizeRatio, Outline outline = null) {
|
||||
return Create(null, localPosition, localScale, backgroundColor, barColor, sizeRatio, 0, outline);
|
||||
}
|
||||
|
||||
public static World_Bar Create(Transform parent, Vector3 localPosition, Vector3 localScale, Color? backgroundColor, Color barColor, float sizeRatio, int sortingOrder, Outline outline = null) {
|
||||
return new World_Bar(parent, localPosition, localScale, backgroundColor, barColor, sizeRatio, sortingOrder, outline);
|
||||
}
|
||||
|
||||
public World_Bar(Transform parent, Vector3 localPosition, Vector3 localScale, Color? backgroundColor, Color barColor, float sizeRatio, int sortingOrder, Outline outline = null) {
|
||||
this.outline = outline;
|
||||
SetupParent(parent, localPosition);
|
||||
if (outline != null) SetupOutline(outline, localScale, sortingOrder - 1);
|
||||
if (backgroundColor != null) SetupBackground((Color)backgroundColor, localScale, sortingOrder);
|
||||
SetupBar(barColor, localScale, sortingOrder + 1);
|
||||
SetSize(sizeRatio);
|
||||
}
|
||||
|
||||
private void SetupParent(Transform parent, Vector3 localPosition) {
|
||||
gameObject = new GameObject("World_Bar");
|
||||
transform = gameObject.transform;
|
||||
transform.SetParent(parent);
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
|
||||
private void SetupOutline(Outline outline, Vector3 localScale, int sortingOrder) {
|
||||
UtilsClass.CreateWorldSprite(transform, "Outline", Assets.i.s_White, new Vector3(0,0), localScale + new Vector3(outline.size, outline.size), sortingOrder, outline.color);
|
||||
}
|
||||
|
||||
private void SetupBackground(Color backgroundColor, Vector3 localScale, int sortingOrder) {
|
||||
background = UtilsClass.CreateWorldSprite(transform, "Background", Assets.i.s_White, new Vector3(0,0), localScale, sortingOrder, backgroundColor).transform;
|
||||
}
|
||||
|
||||
private void SetupBar(Color barColor, Vector3 localScale, int sortingOrder) {
|
||||
GameObject barGO = new GameObject("Bar");
|
||||
bar = barGO.transform;
|
||||
bar.SetParent(transform);
|
||||
bar.localPosition = new Vector3(-localScale.x / 2f, 0, 0);
|
||||
bar.localScale = new Vector3(1,1,1);
|
||||
Transform barIn = UtilsClass.CreateWorldSprite(bar, "BarIn", Assets.i.s_White, new Vector3(localScale.x / 2f, 0), localScale, sortingOrder, barColor).transform;
|
||||
}
|
||||
|
||||
public void SetLocalScale(Vector3 localScale) {
|
||||
// Outline
|
||||
if (transform.Find("Outline") != null) {
|
||||
// Has outline
|
||||
transform.Find("Outline").localScale = localScale + new Vector3(outline.size, outline.size);
|
||||
}
|
||||
|
||||
//Background
|
||||
background.localScale = localScale;
|
||||
|
||||
// Set Bar Scale
|
||||
bar.localPosition = new Vector3(-localScale.x / 2f, 0, 0);
|
||||
Transform barIn = bar.Find("BarIn");
|
||||
barIn.localScale = localScale;
|
||||
barIn.localPosition = new Vector3(localScale.x / 2f, 0);
|
||||
}
|
||||
|
||||
public void SetSortingOrder(int sortingOrder) {
|
||||
bar.Find("BarIn").GetComponent<SpriteRenderer>().sortingOrder = sortingOrder;
|
||||
if (background != null) background.GetComponent<SpriteRenderer>().sortingOrder = sortingOrder - 1;
|
||||
if (transform.Find("Outline") != null) transform.Find("Outline").GetComponent<SpriteRenderer>().sortingOrder = sortingOrder - 2;
|
||||
}
|
||||
|
||||
public void SetSortingLayerName(string sortingLayerName) {
|
||||
bar.Find("BarIn").GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
|
||||
if (background != null) background.GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
|
||||
if (transform.Find("Outline") != null) transform.Find("Outline").GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
|
||||
}
|
||||
|
||||
public void SetRotation(float rotation) {
|
||||
transform.localEulerAngles = new Vector3(0, 0, rotation);
|
||||
}
|
||||
|
||||
public void SetSize(float sizeRatio) {
|
||||
bar.localScale = new Vector3(sizeRatio, 1, 1);
|
||||
}
|
||||
|
||||
public void SetColor(Color color) {
|
||||
bar.Find("BarIn").GetComponent<SpriteRenderer>().color = color;
|
||||
}
|
||||
|
||||
public void SetActive(bool isActive) {
|
||||
gameObject.SetActive(isActive);
|
||||
}
|
||||
|
||||
public void Show() {
|
||||
gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
public void Hide() {
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
public Button_Sprite AddButton(System.Action ClickFunc, System.Action MouseOverOnceFunc, System.Action MouseOutOnceFunc) {
|
||||
Button_Sprite buttonSprite = gameObject.AddComponent<Button_Sprite>();
|
||||
if (ClickFunc != null)
|
||||
buttonSprite.ClickFunc = ClickFunc;
|
||||
if (MouseOverOnceFunc != null)
|
||||
buttonSprite.MouseOverOnceFunc = MouseOverOnceFunc;
|
||||
if (MouseOutOnceFunc != null)
|
||||
buttonSprite.MouseOutOnceFunc = MouseOutOnceFunc;
|
||||
return buttonSprite;
|
||||
}
|
||||
|
||||
public void DestroySelf() {
|
||||
if (gameObject != null) {
|
||||
Object.Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user