Пример #1
0
        public void Add(S d)
        {
            var      category = categorize(d);
            List <S> cage;

            if (!dataInCategory.TryGetValue(category, out cage))
            {
                dataInCategory[category] = cage = cagePool.New();
            }
            cage.Add(d);
        }
        public void AddInWorldSpace(Vector3 worldPos, Vector2 worldSize, params object[] data)
        {
            validator.Invalidate();
            var forward = targetCamera.transform.forward;
            var near    = targetCamera.nearClipPlane;

            worldPos  = Vector3.ProjectOnPlane(worldPos - plane, plane) + plane;
            worldPos += forward * (2f * near * 2f + 0.5f * length);

            var c = pool.New();

            c.transform.SetParent(transform, false);
            c.transform.position   = worldPos;
            c.transform.rotation   = targetCamera.transform.rotation;
            c.transform.localScale = new Vector3(worldSize.x, worldSize.y, length);

            c.Data = data;

            colliders.Add(c);
            c.gameObject.SetActive(true);
        }