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); }
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); }