When an enemy dies in my game, it drops an item on the ground. Enemies may drop multiple items. Currently, the item will always drop a set distance directly below the origin of the enemy when it dies. Therefore, if multiple items are dropped, I only see the most recently dropped item on the ground. Moreover, each item has a UI label clamped to some offset distance above the item. As such, I only see the UI label of the "most recently" dropped item. Because every item dropped by an enemy drops at the same physical location, and because I haven't added code to deal with this kind of thing, the physical game objects overlap with each other and the UI labels of those items overlap with each other.
My question is pretty general. What are the best ways to modify my code such that
1) If multiple items are dropped, there will appear to be multiple game objects on the ground (Close enough to the origin)?
2) The UI labels attached to each item will appear as close as possible to that item without overlapping with the other items' UI labels?
I would appreciate direct assistance or references that deal with this kind of thing. Thanks.