Basic treadmill/tiling system for Prefab gameobjects
Hi Team,
I've been looking for a few months to find something that fits my skill level and understanding - I'm new to Unity and have been developing an endless game where my playspace is an endless ocean which moves forward with the camera and has some lateral movement. I have no physics in the game, so I don't need anything particularly fancy around buoyancy for objects in the ocean (I've got them bobbing using some perlin noise).
Initially I had a very basic transparent cube representing my ocean, and I would move as part of my "camera rig" along with my camera movement, but I've decided I need some flashier water mechanics, which means I need to start generating the water.
I found a great asset on the asset store which looks the business from a user called @jolix (https://assetstore.unity.com/packages/vfx/shaders/substances/low-poly-water-gpu-79255) and now I'm trying to figure out how to tile it based on the player location.
The Doco for the asset doesn't have specific instructions for tiling and most of the stuff I've found online is more focussed on Terrain generation, which this asset is not.
I think what I need to do is set up a 3x3 grid and instantiate the water tile prefabs, but I'm not certain how best to do it. I've managed to do a simple for loop to instantiate my starting grid as follows:
for (int y = 0; y < waterGridY; y++)
{
for (int x = 0; x < waterGridX; x++)
{
Vector3 pos = new Vector3(x, 0, y) * spacing;
Instantiate(waterPrefab, pos, Quaternion.identity);
}
This is fine for getting my initial grid, but I'm not really sure where to look in order to have the grid adjust itself based on a player location.
I've experimented before with adapting code I found here (https://github.com/Meowmaritus/Unity_SpaceGame/blob/master/Assets/Scripts/InfiniteTerrain.cs) which works ok and seems to appear in a few different places. I'm really unsure how to translate the "terrain" classes to instead be Prefab game objects.
Any pointers would be greatly appreciated :)
Thanks, Kevin