protected void HandleSliderChangeRequest(SliderLevels levels) { //pls change state based on slider levels //for this one i'm just going to send a message to the root object... gameObject.SendMessageUpwards("OnSliderChangeRequest", levels); }
public void performLevelCalculations() { Vector3 origin = baseLocation; Vector3 currentLocation = gameObject.transform.localPosition; SliderLevels sliders = new SliderLevels(); //gives x y z values for the size. we want to go .5 times the axis of freedom max. float[] allowedThreshold = new float[3]; allowedThreshold[0] = bounds.x; allowedThreshold[1] = bounds.y; allowedThreshold[2] = bounds.z; if (allowX) { //calculate what % of the allowed direction im at. //0-30% +1pt 31-60% +2pts 61-100% +3pts if to the right //0-30% -1pt 31-60% -2pts 61-100% -3pts if to the left if (currentLocation.x < origin.x) //left side of origin { var delta = Mathf.Abs(currentLocation.x - origin.x); if (delta > (0.61f * allowedThreshold[0])) { Debug.Log("LEVEL 3 DECREASE"); sliders.XAxisLevel = -3; } else if (delta > (0.31f * allowedThreshold[0]) && delta < (0.60f * allowedThreshold[0])) { Debug.Log("LEVEL 2 DECREASE"); sliders.XAxisLevel = -2; } else if (delta > (0.01f * allowedThreshold[0]) && delta < (0.30f * allowedThreshold[0])) { Debug.Log("LEVEL 1 DECREASE"); sliders.XAxisLevel = -1; } else { //do nothing weird numbers.... sliders.XAxisLevel = 0; } } else if (currentLocation.x >= origin.x) //right side of origin { var delta = Mathf.Abs(currentLocation.x - origin.x); if (delta > (0.61f * allowedThreshold[0])) { Debug.Log("LEVEL 3 INCREASE"); sliders.XAxisLevel = 3; } else if (delta > (0.31f * allowedThreshold[0]) && delta < (0.60f * allowedThreshold[0])) { Debug.Log("LEVEL 2 INCREASE"); sliders.XAxisLevel = 2; } else if (delta > (0.01f * allowedThreshold[0]) && delta < (0.30f * allowedThreshold[0])) { Debug.Log("LEVEL 1 INCREASE"); sliders.XAxisLevel = 1; } else { //do nothing weird numbers.... sliders.XAxisLevel = 0; } } } if (allowY) { if (currentLocation.y < origin.y) //left side of origin { var delta = Mathf.Abs(currentLocation.y - origin.y); if (delta > (0.61f * allowedThreshold[1])) { Debug.Log("LEVEL 3 DECREASE"); sliders.YAxisLevel = -3; } else if (delta > (0.31f * allowedThreshold[1]) && delta < (0.60f * allowedThreshold[1])) { Debug.Log("LEVEL 2 DECREASE"); sliders.YAxisLevel = -2; } else if (delta > (0.01f * allowedThreshold[1]) && delta < (0.30f * allowedThreshold[1])) { Debug.Log("LEVEL 1 DECREASE"); sliders.YAxisLevel = -1; } else { //do nothing weird numbers.... sliders.YAxisLevel = 0; } } else if (currentLocation.y >= origin.y) //right side of origin { var delta = Mathf.Abs(currentLocation.y - origin.y); if (delta > (0.61f * allowedThreshold[1])) { Debug.Log("LEVEL 3 INCREASE"); sliders.YAxisLevel = 3; } else if (delta > (0.31f * allowedThreshold[1]) && delta < (0.60f * allowedThreshold[1])) { Debug.Log("LEVEL 2 INCREASE"); sliders.YAxisLevel = 2; } else if (delta > (0.01f * allowedThreshold[1]) && delta < (0.30f * allowedThreshold[1])) { Debug.Log("LEVEL 1 INCREASE"); sliders.YAxisLevel = 1; } else { //do nothing weird numbers.... sliders.YAxisLevel = 0; } } } else { //... } if (allowZ) { if (currentLocation.z < origin.z) //left side of origin { var delta = Mathf.Abs(currentLocation.z - origin.z); if (delta > (0.61f * allowedThreshold[2])) { Debug.Log("LEVEL 3 DECREASE"); sliders.ZAxisLevel = -3; } else if (delta > (0.31f * allowedThreshold[2]) && delta < (0.60f * allowedThreshold[2])) { Debug.Log("LEVEL 2 DECREASE"); sliders.ZAxisLevel = -2; } else if (delta > (0.01f * allowedThreshold[2]) && delta < (0.30f * allowedThreshold[2])) { Debug.Log("LEVEL 1 DECREASE"); sliders.ZAxisLevel = -1; } else { //do nothing weird numbers.... sliders.ZAxisLevel = 0; } } else if (currentLocation.z >= origin.z) //right side of origin { var delta = Mathf.Abs(currentLocation.z - origin.z); if (delta > (0.61f * allowedThreshold[2])) { Debug.Log("LEVEL 3 INCREASE"); sliders.ZAxisLevel = 3; } else if (delta > (0.31f * allowedThreshold[2]) && delta < (0.60f * allowedThreshold[2])) { Debug.Log("LEVEL 2 INCREASE"); sliders.ZAxisLevel = 2; } else if (delta > (0.01f * allowedThreshold[2]) && delta < (0.30f * allowedThreshold[2])) { Debug.Log("LEVEL 1 INCREASE"); sliders.ZAxisLevel = 1; } else { //do nothing weird numbers.... sliders.ZAxisLevel = 0; } } } else { } if (sliders.XAxisLevel != 0 || sliders.YAxisLevel != 0 || sliders.ZAxisLevel != 0) { HandleSliderChangeRequest(sliders); } }