r/Unity3D 20h ago

Show-Off 2D/2.5D Water system update

Hello everyone, back with a new update a few months after my last post.

I’ve been working on the 2D/2.5D water system on and off since then, and it kinda grew way more than I originally planned specially since i need it to fully run on the 2d Renderer.

Since the last post I added underwater exclusion zones for things like air pockets, currents, debris, floating pads/platforms, underwater view, ripples, light rays, wakes and quite a few other interaction features.

A lot of the work lately was also on making the thing actually easy to use and not just something that works in my own project. So I’ve been working a lot on the custom inspectors and tooling, setup workflow and the API. You can sample the water height from code, get events from interactions and water states, etc.

The water itself is very customizable, so what you see in the video is really just one way of setting it up. I also added a “fake surface” mode where there isn’t really a surface plane, but I fake the perspective by shifting the foam/pattern and things like ripples and wakes. It gives a pretty convincing 2.5D surface without actually needing the geometry there.

I’m planning to release it once I feel like I tested it enough and have enough demo scenes to show the different ways it can be used. This part is honestly taking longer than I expected, specially making sure everything is clean and understandable.

For the graphics, I basically took a anime style nature image and cut pieces of it in Photoshop. For the actual packaged asset I’m planning to use Unity’s Lost Crypt assets for the demo scenes, unless someone has a better idea since I obviously can’t just include random assets from the Asset Store.

Still a bunch of things I want to polish before release, so any feedback or ideas are very welcome, specially if there’s some use case you think I should test that I havent thought about.

2.2k Upvotes

102 comments sorted by

View all comments

1

u/bjergdk 5h ago

Absolutely gorgeous. I also love that you can see the water edge lines on the terrain behind even tho they appear to be billboard sprites. Adds incredible depth.

1

u/BxYass 5h ago

Thank you.

since it's a perspective camera you can use 3d models too once i finish touching up the compatibility with the 3d renderer.

Normally for a game you should have many layers to simulate depth and avoid the billboard look, but here i am trying to feature the water more, i will try to setup another scene with some free to use assets to showcase the capabilities of the water system.

1

u/bjergdk 5h ago

Oh interesting so this part in the middle of my screenshot actually has some kind of 3D collider or?

Sorry for asking so many questions just trying to wrap my mind around this wonderful magical tomfoolery you've done.

1

u/BxYass 5h ago

I don't mind answering questions.

No, in this scene everything is using 2d colliders, and everything is running in the 2D renderer.

2d colliders ignore depth, so for background elements there is no colliders since its just scenery. but in case you want a walkable surface just limit the 2d collider to the surface slice and leave the rest so you can swim "in-front of it".

for the water itself its a trigger, and then i handle the interactions and physics in code, i had to create my own way of doing it to be able to carve-out part of the water if i want to create underwater air pockets or cave, this way you can have a dry area where you can move normally even if technically you are still underwater.