**_Note:This repositry uses GitLFS, to use this repo you need to pull via Git and make sure GitLFS is installed locally_**
**_Note:This repository uses GitLFS, to use this repo you need to pull via Git and make sure GitLFS is installed locally_**
[![Click for Youtube Video](https://gdurl.com/gRZYX)](https://drive.google.com/file/d/1PTNdhnqbhzSWUCfAinIefP5cfr6Dezuw/view)
[![Click for Youtube Video](https://media.githubusercontent.com/media/Verasl/BoatAttack/release/2019.3/Assets/Textures/UI/welcome-title.png)](https://drive.google.com/file/d/1PTNdhnqbhzSWUCfAinIefP5cfr6Dezuw/view)
This Unity project has been created to aid the testing and development of Universal RP. The project is a small vertical slice of a boat racing game, complete with raceable boats and island environment.
This Unity project has been created to aid the testing and development of Universal RP. The project is a small vertical slice of a boat racing game, complete with race-able boats and island environment.
Feel free to post any issues, but know this is a 'as is' repo, it's meant more for discovery of how some of the Universal RP features work and a learning resource for some tricks.
**Project Features**:
* Uses Universal RP from Unity
* Shadergraph usage
* Postprocesing v2 with Volume blending
* Custom Universal RP rendering for planar reflections via [SRP callbacks](https://docs.unity3d.com/ScriptReference/Rendering.RenderPipeline.html)
* Shader Graph usage
* Post-processing v3 with Volume blending
* Addressables asset management package
* Custom Universal RP rendering for planar reflections via [SRP callbacks](https://docs.unity3d.com/ScriptReference/Rendering.RenderPipelineManager.html)
* Gestner based water system in local package(WIP)
* Gerstner based water system in local package(WIP)
Via your Git GUI(or terminal/commandline) clone* down and open in Unity. Make sure you clone down the relative branch depending on unity version you are using, you will find them via `release/20xx.x` for the version you are using. `master` branch is a development branch and used with the latest version of [SRP](https://github.com/Unity-Technologies/ScriptableRenderPipeline), due to this the project has local links to the directory of the SRP cloned down on a specific machine, meaning to use this you will need to clone down SRP and point to the directories via package manager, more info can be found [here](https://docs.unity3d.com/Manual/upm-ui-local.html).
#### Getting the project
via Git:
1. Make sure you have GitLFS installed, check [here](https://git-lfs.github.com) for details.
2. Clone the repo as usual via cmd/terminal or in your favourite Git GUI software.
3. Checkout the branch that matches the Unity verison you are using, eg `release/2019.3`
Once you have the project files locally you can load the project, ideally in the Unity version that is noted in the `ProjectSettings/ProjectVersion.txt` for the best experience.
Upon loading the project will display a small welcome screen with some buttons to load starting scenes.
Scenes worth noting:
- `scenes/main_menu.unity` - Starting menu scene if you want to have a full play-through of the demo.
- `scenes/demo_island.unity` - Setup to play in the editor and go straight into an AI based race.
- `scenes/_levels/level_Island.unity` - The scene loaded when entering from the main menu.
- `scenes/Testing/***.unity` - Assorted test scenes, these are in need of updating and come as is.
#### Build the project:
One thing to make sure you do before building is make sure to build the addressable assets, this can be done via the addressables window, for more information please checkout the addressables [package documentation](https://docs.unity3d.com/Packages/com.unity.addressables@latest).
Once the addressable assets are built you can continue to build a player as usual.
Feel free to post any issues, but know this is a 'as is' repo, it's meant more for discovery of how some of the Universal RP features work and a learning resource for some tricks.
One thing to mention is not all controls and platforms have been tested, especially for the menu work. if you want to just see the project running on a device you can add the `scenes/demo_island.unity` scene to the build list and disable/remove the others.
As this project is on goinig there is a lot more left that needs to be worked on, so I repeat this is not a resource for production ready workflow ideas or systems and lots of it was put together very quickly.
As this project is on going there is a lot more left that needs to be worked on, so I repeat this is not a resource for production ready workflow ideas or systems and lots of it was put together very quickly.
* Make menu system to switch between Demoing/Playing/Benchmarking
* Impliment Unity Physics
* Cleanup menu system to switch between Demoing/Playing/Benchmarking