/vsgUnity

Vsg Tools for Unity3D

Primary LanguageC#MIT LicenseMIT

vsgUnity

Native Unity Plugin for exporting VulkanSceneGraph files from Unity3D.

Project Layout

The vsgUnity project consists of two Libraries

unity2vsg

A C++ library exposing functionality to build, save and preview VSG graphs.

vsgUnity

A Unity3D plugin that utilises unity2vsg to export a Unity GameObject or Scene.

To aid development a complete Unity project is included in this repository and contains the vsgUnity scripts as well as some useful test scenes. To open it select the root UnityProject folder when opening a project in Unity.

The UnityProject/Assets/vsgUnity folder holds the main plugin scripts and can be copied into other Unity3D projects. When building from source the unity2vsg binary must be copied into UnityProject/Assets/vsgUnity/Native/Plugins/(PlatformName) where (PlatformName) is the name of the OS platform you are using, unity2vsg contains a post build step that should do this for you.

Also note that you'll need to close Unity any time you want to copy a new unity2vsg binary as it'll be locked and the Unity only reloads the library on startup.

Building unity2vsg

Prerequisites

  • C++17 compliant compiler i.e. g++ 7.3 or later, Clang 6.0 or later, Visual Studio S2017 or later.
  • Vulkan 1.1 or later.
  • glslang
  • CMake 3.7 or later.

Ensure Vulkan is installed and the VULKAN_SDK environment variable has been set and that glsllang has been built and installed and that it's install path has been added to your CMAKE_PREFIX_PATH. The VulkanSceneGraph project has more details on these subjects.

Building for Windows using Visual Studio 2017

Command line instructions for default build of shared library (.dll) in source:

git clone https://github.com/vsg-dev/vsgUnity
cd vsgUnity
cmake . -G "Visual Studio 15 2017 Win64"

A post build step will copy unity2vsg.dll into UnityProject/Assets/vsgUnity/Native/Plugins/Windows. Ensure Unity is closed or the .dll file will not copy.

Building for Unix

Command line instructions for default build of shared library (.so) in source:

git clone https://github.com/vsg-dev/vsgUnity
cd vsgUnity
cmake .
make -j 8

A post build step will copy libunity2vsg.so into UnityProject/Assets/vsgUnity/Native/Plugins/Linux. Ensure Unity is closed or the .so file will not copy.

Using vsgUnity

As stated above vsgUnity consists of a collection of Unity scripts (.cs files) and the unity2vsg C++ library. Everything needed for vsgUnity to run within a Unity project is contained in the UnityProject/Assets/vsgUnity folder. If you want to use vsgUnity in you own project just copy that entire folder.

If you open the UnityProject folder as a project in Unity you can try out vsgUnity. Once open goto

Window>VulkanSceneGraph>Exporter

A window will popup allowing you to select the GameObject you want to export (leave it blank to export the entire current scene). There are also various options and a option to preview your file ina VSG viewer.