0
我正在尝试使用SpriteRenderer
对象播放MovieTexture
对象。 我的代码在OSX上正常工作。来自MovieTexture的Unity UpdateExternalTexture Windows崩溃
它崩溃我的Windows 7 出口游戏,而在Windows中统一编辑播放模式7.
我相信currentTexture.UpdateExternalTexture()
呼叫使其崩溃,但我想不出为什么。
任何人都可以解释为什么这不工作或如何调试它?就是我用
using UnityEngine;
using System.Collections;
public class FMAC_VideoPlayer : MonoBehaviour {
public string animationName = "escalator";
MovieTexture movieTexture;
Texture2D currentTexture;
SpriteRenderer spriteRenderer;
Sprite sprite;
void Start()
{
movieTexture = Resources.Load (animationName) as MovieTexture;
currentTexture = new Texture2D(movieTexture.width, movieTexture.height);
currentTexture.UpdateExternalTexture(movieTexture.GetNativeTexturePtr());
spriteRenderer = GetComponent<SpriteRenderer>();
sprite = Sprite.Create (currentTexture, new Rect(Vector2.zero, new Vector2(movieTexture.width, movieTexture.height)), new Vector2(0.5f, 0.5f));
spriteRenderer.sprite = sprite;
movieTexture.Play();
}
}
观念的统一日志文件不包含任何似乎是有益,只是消息Crashed.
这里?
更新
我Debug.Log()
编天然纹理指针,打印指针地址(例如:556409680),因此它似乎并不为NULL。
这是一个很好的猜测,我只是试图检查null,但它似乎有一个有效的值。我已经用这个更新了这个问题。 –
我对低级编程不太好,但我相信指针可以指向空值。尝试使用'.ToInt32()'来获取指针的值。 –
再次好点。试过了,它打印出和以前一样的值。所以我认为toInt32()值是在这种类型的对象情况下默认打印的值。 –