コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }