TextureSource is a utility that provides a consistent API to get the texture from various sources.
using TextureSource;
using UnityEngine;
[RequireComponent(typeof(VirtualTextureSource))]
public class TextureSourceSample: MonoBehaviour
{
private void Start()
{
// Listen to OnTexture event from VirtualTextureSource
// Also able to bind in the inspector
if (TryGetComponent(out VirtualTextureSource source))
{
source.OnTexture.AddListener(OnTexture);
}
}
private void OnDestroy()
{
if (TryGetComponent(out VirtualTextureSource source))
{
source.OnTexture.RemoveListener(OnTexture);
}
}
public void OnTexture(Texture texture)
{
// Do whatever 🥳
// You don't need to think about webcam texture rotation.
}
}
Add the following setting to Packages/manifest.json
{
"scopedRegistries": [
{
"name": "npm",
"url": "https://registry.npmjs.com",
"scopes": [
"com.github.asus4"
]
}
],
"dependencies": {
"com.github.asus4.texture-source": "0.3.2",
...// other dependencies
}
}
After installing the library, attach VirtualTextureSource
to the GameObject.
Then, right-click on the project panel and create the TextureSource scriptable object that you want to use. You can set different sources for the Editor and Runtime.
Currently provides the following sources:
Includes collecting device rotation.
Useful when using test videos only in the Editor.
Test with static images.
OnTexture
event is invoked every frame if the sendContinuousUpdate
is enabled.
Provides AR camera texture access. It supports both ARCore/ARKit.
Inspired from TestTools