You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
2.0 KiB

/* ---------------------------------------
* Author: Martin Pane (martintayx@gmail.com) (@tayx94)
* Collaborators: Lars Aalbertsen (@Rockylars)
* Project: Graphy - Ultimate Stats Monitor
* Date: 05-Mar-18
* Studio: Tayx
*
* This project is released under the MIT license.
* Attribution is not required, but it is always welcomed!
* -------------------------------------*/
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
namespace Tayx.Graphy.CustomizationScene
{
public class ForceSliderToPowerOf2 : MonoBehaviour
{
/* ----- TODO: ----------------------------
* Check if we can seal this class.
* Add summaries to the variables.
* Add summaries to the functions.
* Check if we can remove "using System.Collections;".
* Check if we could make the "m_powerOf2Values" constant.
* Check if we should add "private" to the Unity Callbacks.
* --------------------------------------*/
#region Variables -> Serialized Private
[SerializeField] private Slider m_slider;
#endregion
#region Variables -> Private
private int[] m_powerOf2Values =
{
128,
256,
512,
1024,
2048,
4096,
8192
};
private Text m_text;
#endregion
#region Methods -> Unity Callbacks
void Start()
{
m_slider.onValueChanged.AddListener(UpdateValue);
}
#endregion
#region Methods -> Private
private void UpdateValue(float value)
{
int closestSpectrumIndex = 0;
int minDistanceToSpectrumValue = 100000;
//TODO: Put the int cast outside of the loop.
for (int i = 0; i < m_powerOf2Values.Length; i++)
{
int newDistance = Mathf.Abs((int)value - m_powerOf2Values[i]);
if (newDistance < minDistanceToSpectrumValue)
{
minDistanceToSpectrumValue = newDistance;
closestSpectrumIndex = i;
}
}
m_slider.value = m_powerOf2Values[closestSpectrumIndex];
}
#endregion
}
}