diff --git a/unity-client/Assets/Scripts/Visual/EnvironmentManager.cs b/unity-client/Assets/Scripts/Visual/EnvironmentManager.cs index 3715432..6f69792 100644 --- a/unity-client/Assets/Scripts/Visual/EnvironmentManager.cs +++ b/unity-client/Assets/Scripts/Visual/EnvironmentManager.cs @@ -394,6 +394,8 @@ namespace TheIsland.Visual CreateRock(new Vector3(-5, 0, 4), 0.5f); CreateRock(new Vector3(6, 0, 5), 0.7f); CreateRock(new Vector3(-7, 0, 6), 0.4f); + + CreateGroundDetails(); } private void CreatePalmTree(Vector3 position, float scale) @@ -646,6 +648,90 @@ namespace TheIsland.Visual } #endregion + private void CreateGroundDetails() + { + // Scatter shells + for (int i = 0; i < 20; i++) + { + float x = Random.Range(-25f, 25f); + float z = Random.Range(3f, 7f); // Near water line + + var shell = new GameObject("Shell"); + shell.transform.SetParent(transform); + shell.transform.position = new Vector3(x, -0.45f, z); + // Lie flat + shell.transform.rotation = Quaternion.Euler(90, Random.Range(0, 360), 0); + + var renderer = shell.AddComponent(); + renderer.sprite = CreateShellSprite(); + renderer.sortingOrder = -39; + shell.transform.localScale = Vector3.one * Random.Range(0.2f, 0.4f); + } + + // Scatter pebbles + for (int i = 0; i < 30; i++) + { + float x = Random.Range(-25f, 25f); + float z = Random.Range(-2f, 10f); // Wider range + + var pebble = new GameObject("Pebble"); + pebble.transform.SetParent(transform); + pebble.transform.position = new Vector3(x, -0.48f, z); + pebble.transform.rotation = Quaternion.Euler(90, Random.Range(0, 360), 0); + + var renderer = pebble.AddComponent(); + renderer.sprite = CreatePebbleSprite(); + renderer.sortingOrder = -39; + renderer.color = new Color(0.7f, 0.7f, 0.7f); + pebble.transform.localScale = Vector3.one * Random.Range(0.1f, 0.2f); + } + } + + private Sprite CreateShellSprite() + { + int size = 32; + Texture2D tex = new Texture2D(size, size); + Color[] pixels = new Color[size*size]; + for(int i=0; i