示例#1
0
        private void CreateObjectOnShelf(int level, ShelfDetails shelfDetails, ShelfObjects item, float positionOnShelf)
        {
            Vector3 pos = shelfDetails.GetPosition(positionOnShelf, level);

            string     prefabName = item.Name;
            GameObject go         = PerfabBuilder.CreatePrefab(pos, prefabName);

            if (ShelfcollisionStyle == ShelfCollisionStyles.Quick)
            {
                PerfabBuilder.RemoveCollision(go);
            }
            go.transform.parent = shelfDetails.ParentObject(level).transform;

            go.transform.rotation = new Quaternion();
            float angle = Random.Range(0, 360);

            if (item.Rotate)
            {
                go.transform.Rotate(angle, 90, 0);
            }
            else
            {
                go.transform.Rotate(0, 0, angle);
            }

            RandomMaterialHolder.ReplaceMaterials(go);
            InitObjects(go);
        }
示例#2
0
        public float GetPosition(ShelfObjects item)
        {
            float d = Random.Range(0, 100);

            d /= 100;

            float start = d - (item.Size / 2);

            if (start < 0)
            {
                d     = item.Size / 2;
                start = d - (item.Size / 2);
            }
            float end = d + (item.Size / 2);

            if (end > 1)
            {
                d   = 1 - item.Size / 2;
                end = d + (item.Size / 2);
            }

            ShelfSpaceDetails shelfSpace = new ShelfSpaceDetails()
            {
                Start = start,
                End   = end
            };

            if (!AnyOverlaps(shelfSpace))
            {
                _shelfSpaceDetails.Add(shelfSpace);
                return(d);
            }

            return(0);
        }