public static StaticRotator GetClosestRotator(string name) { StaticRotator[] allRotators = UnityEngine.Object.FindObjectsOfType <StaticRotator>(); StaticRotator[] rotators = Array.FindAll(allRotators, r => r.name.StartsWith(name)); float lowestDist = Single.PositiveInfinity; StaticRotator closest = null; foreach (var obj in rotators) { float dist = Vector3.Distance(obj.transform.position, ballMovement.transform.position); if (dist < lowestDist) { lowestDist = dist; closest = obj; } } return(closest); }
public void TestGetNext() { var items = new[] { 1, 3, 5, 7, 9 }; var rotator = new StaticRotator<int>(items); Assert.AreEqual(5, rotator.Count); Assert.AreEqual(1, rotator.GetNext()); Assert.AreEqual(3, rotator.GetNext()); Assert.AreEqual(5, rotator.GetNext()); Assert.AreEqual(7, rotator.GetNext()); Assert.AreEqual(9, rotator.GetNext()); Assert.AreEqual(1, rotator.GetNext()); Assert.AreEqual(3, rotator.GetNext()); Assert.AreEqual(5, rotator.GetNext()); Assert.AreEqual(7, rotator.GetNext()); Assert.AreEqual(9, rotator.GetNext()); }