static IList <GameObject> SortByX(GameObject[] os) { var objects = new SortedList <Vector3, GameObject>(LambdaComparer.Create((Vector3 a, Vector3 b) => { if (a.y < b.y) { return(-1); } if (a.y == b.y && a.x < b.x) { return(-1); } if (a.y == b.y && a.x == b.x) { return(0); } return(1); })); foreach (var o in Selection.gameObjects) { objects.Add(o.transform.localPosition, o); } return(objects.Values); }
public float time(float d) { int i = Array.BinarySearch(this.d, Tuple.Create(0f, d) , LambdaComparer.Create((Tuple <float, float> a, Tuple <float, float> b) => Comparer <float> .Default.Compare(a.Item2, b.Item2))); if (i >= 0) { return(this.d[i].Item1); } i = -i - 1; return(d.InvLerp(this.d[i - 1].Item2, this.d[i].Item2).Lerp(this.d[i - 1].Item1, this.d[i].Item1)); }
public float distance(float t) { int i = Array.BinarySearch(d, Tuple.Create(t, 0f) , LambdaComparer.Create((Tuple <float, float> a, Tuple <float, float> b) => Comparer <float> .Default.Compare(a.Item1, b.Item1))); if (i >= 0) { return(d[i].Item2); } i = -i - 1; return(t.InvLerp(d[i - 1].Item1, d[i].Item1).Lerp(d[i - 1].Item2, d[i].Item2)); }