8 releases (breaking)
0.7.0 | Aug 4, 2024 |
---|---|
0.6.0 | Jul 16, 2024 |
0.5.0 | Sep 15, 2021 |
0.4.1 | Nov 28, 2020 |
0.1.1 | Aug 31, 2020 |
#229 in Game dev
Used in unity-native-plugin-vulka…
4.5MB
124K
SLoC
Unity Native Plugin API for Rust
Notice
- WIP
- Currently supports D3D11, D3D12, Vulkan
- API is not stable.
How to use
- Define in Cargo.toml
[dependencies]
unity-native-plugin = { version = "*", features = ["d3d11"] }
# * Support features
# * d3d11 - IUnityGraphicsD3D11
# * d3d12 - IUnityGraphicsD3D12
# * profiler - IUnityProfiler
# * profiler_callbacks - IUnityProfilerCallbacks
- If you use Vulkan, define "unity-native-plugin-vulkan" in your dependencies.
[dependencies]
unity-native-plugin = "*"
unity-native-plugin-vulkan = "*"
- Use a macro in lib.rs to define your entry points. Without this definition, UnityInterfaces cannot be used.
unity_native_plugin::unity_native_plugin_entry_point! {
fn unity_plugin_load(interfaces: &unity_native_plugin::interface::UnityInterfaces) {
// called UnityPluginLoad
}
fn unity_plugin_unload() {
// called UnityPluginUnload
}
}
- Use UnityInterface::interface, which is equivalent to IUnityInterfaces::GetInterface, to get the interface.
let intf = unity_native_plugin::interface::UnityInterfaces::get()
.interface::<unity_native_plugin::d3d11::UnityGraphicsD3D11>();