// Start is called before the first frame update void Start() { bink = BinkNativeMethods.BinkOpen(BinkAnimation, 0); bk = Marshal.PtrToStructure <BinkNativeMethods.BINK>(bink); texture = new Texture2D(bk.Width, bk.Height, TextureFormat.RGBA32, false); var renderer = GetComponent <SpriteRenderer>(); renderer.sprite = Sprite.Create(texture, new Rect(0, 0, bk.Width, bk.Height), Vector2.zero); buffer = new byte[bk.Width * 4 * bk.Height]; }
private void Update() { if (bink != IntPtr.Zero && BinkNativeMethods.BinkWait(bink) == 0) { BinkNativeMethods.BinkDoFrame(bink); // do you stuff here BinkNativeMethods.BinkCopyToBuffer(bink, buffer, bk.Width * 3, (uint)bk.Height, 0, 0, BinkNativeMethods.BINK_COPY_FLAGS.BINKSURFACE32RGBA); texture.LoadRawTextureData(buffer); texture.Apply(); BinkNativeMethods.BinkNextFrame(bink); } }