1
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
/// Original Credit Korindian
|
||||
/// Sourced from - http://forum.unity3d.com/threads/rts-style-drag-selection-box.265739/
|
||||
/// Updated Credit BenZed
|
||||
/// Sourced from - http://forum.unity3d.com/threads/color-picker.267043/
|
||||
|
||||
namespace UnityEngine.UI.Extensions
|
||||
{
|
||||
public class ExampleSelectable : MonoBehaviour, IBoxSelectable
|
||||
{
|
||||
#region Implemented members of IBoxSelectable
|
||||
bool _selected = false;
|
||||
public bool selected
|
||||
{
|
||||
get
|
||||
{
|
||||
return _selected;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_selected = value;
|
||||
}
|
||||
}
|
||||
|
||||
bool _preSelected = false;
|
||||
public bool preSelected
|
||||
{
|
||||
get
|
||||
{
|
||||
return _preSelected;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_preSelected = value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
//We want the test object to be either a UI element, a 2D element or a 3D element, so we'll get the appropriate components
|
||||
SpriteRenderer spriteRenderer;
|
||||
Image image;
|
||||
#if UNITY_2022_1_OR_NEWER
|
||||
TMPro.TMP_Text text;
|
||||
#else
|
||||
Text text;
|
||||
#endif
|
||||
|
||||
void Start()
|
||||
{
|
||||
spriteRenderer = transform.GetComponent<SpriteRenderer>();
|
||||
image = transform.GetComponent<Image>();
|
||||
#if UNITY_2022_1_OR_NEWER
|
||||
text = transform.GetComponent<TMPro.TMP_Text>();
|
||||
#else
|
||||
text = transform.GetComponent<Text>();
|
||||
#endif
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
|
||||
//What the game object does with the knowledge that it is selected is entirely up to it.
|
||||
//In this case we're just going to change the color.
|
||||
|
||||
//White if deselected.
|
||||
Color color = Color.white;
|
||||
|
||||
if (preSelected)
|
||||
{
|
||||
//Yellow if preselected
|
||||
color = Color.yellow;
|
||||
}
|
||||
if (selected)
|
||||
{
|
||||
//And green if selected.
|
||||
color = Color.green;
|
||||
}
|
||||
|
||||
//Set the color depending on what the game object has.
|
||||
if (spriteRenderer)
|
||||
{
|
||||
spriteRenderer.color = color;
|
||||
}
|
||||
else if (text)
|
||||
{
|
||||
text.color = color;
|
||||
}
|
||||
else if (image)
|
||||
{
|
||||
image.color = color;
|
||||
}
|
||||
else if (GetComponent<UnityEngine.Renderer>())
|
||||
{
|
||||
GetComponent<UnityEngine.Renderer>().material.color = color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user