即使在 Unity vuforia 中丢失目标后播放视频?
Play video even after when target lost in Unity vuforia?
我有一个要求,当找到目标图像时应该播放视频。现在,当目标图像丢失时,视频仍应播放。
在这种情况下,我认为我必须将视频附加到 AR Camera
,当找到目标图像时,它应该被激活并播放。但我很困惑。这个问题的最佳解决方案是什么。
我试过的:
我将这些四边形(我正在播放视频的内部)与图像目标分开,并将它们设置在相机前面(我有两个图像目标)。现在里面 DefaultTrackableEventHandler
我加了两个 GameObject
public GameObject Quad1;
public GameObject Quad;
现在在 Start
方法中,我正在这样做:
Quad = GameObject.Find("Quad");
Quad1 = GameObject.Find("Quad1");
Quad.SetActive(false);
Quad1.SetActive(false);
现在我在 OnTrackingFound
方法中添加了以下内容:
if (mTrackableBehaviour.TrackableName == "myImage1")
{
Quad.SetActive(true);
playSound("sounds/maiplayback");
}
if(mTrackableBehaviour.TrackableName == "myImage2")
{
Quad1.SetActive(true);
playSound("sounds/mainplayback2");
}
与 OnTrackingLost
中的代码相同,因为即使目标丢失,我们也必须播放视频。
但是当我这样做时,视频会在相机打开时开始播放。我卡住了。请建议我。任何帮助将非常感激。谢谢你!
每次加载场景时,Vuforia 都会调用 Trackable Lost,也许这就是问题所在。
我为修改这种行为所做的工作是将 DefaultTrackableBehaviour
的事件调用添加到其他脚本中的函数。
在这种情况下,我会在 OnTrackableFound
上添加对使视频对象出现或开始播放的函数的调用,该视频应该像我认为的那样附加到 ARCamera。
当您开始播放视频时,会激活一个标记,这样当目标再次被跟踪时,它就不会对视频产生错误的行为。然后你想怎么停就怎么停。
像这样。
bool playing = false;
public void PlayVideo ()
{
if (!playing)
{
playing = true;
Quad1.SetActive (true);
playSound ("sounds/mainplayback2");
}
}
public void StopVideo ()
{
if (playing)
{
playing = false;
Quad1.SetActive (false);
stopSound ();
}
}
在最坏的情况下,有第二个摄像头附加视频对象,这样 Vuforia 就无法干扰您的视频行为,您可以随意打开和关闭它。
我有一个要求,当找到目标图像时应该播放视频。现在,当目标图像丢失时,视频仍应播放。
在这种情况下,我认为我必须将视频附加到 AR Camera
,当找到目标图像时,它应该被激活并播放。但我很困惑。这个问题的最佳解决方案是什么。
我试过的:
我将这些四边形(我正在播放视频的内部)与图像目标分开,并将它们设置在相机前面(我有两个图像目标)。现在里面 DefaultTrackableEventHandler
我加了两个 GameObject
public GameObject Quad1;
public GameObject Quad;
现在在 Start
方法中,我正在这样做:
Quad = GameObject.Find("Quad");
Quad1 = GameObject.Find("Quad1");
Quad.SetActive(false);
Quad1.SetActive(false);
现在我在 OnTrackingFound
方法中添加了以下内容:
if (mTrackableBehaviour.TrackableName == "myImage1")
{
Quad.SetActive(true);
playSound("sounds/maiplayback");
}
if(mTrackableBehaviour.TrackableName == "myImage2")
{
Quad1.SetActive(true);
playSound("sounds/mainplayback2");
}
与 OnTrackingLost
中的代码相同,因为即使目标丢失,我们也必须播放视频。
但是当我这样做时,视频会在相机打开时开始播放。我卡住了。请建议我。任何帮助将非常感激。谢谢你!
每次加载场景时,Vuforia 都会调用 Trackable Lost,也许这就是问题所在。
我为修改这种行为所做的工作是将 DefaultTrackableBehaviour
的事件调用添加到其他脚本中的函数。
在这种情况下,我会在 OnTrackableFound
上添加对使视频对象出现或开始播放的函数的调用,该视频应该像我认为的那样附加到 ARCamera。
当您开始播放视频时,会激活一个标记,这样当目标再次被跟踪时,它就不会对视频产生错误的行为。然后你想怎么停就怎么停。
像这样。
bool playing = false;
public void PlayVideo ()
{
if (!playing)
{
playing = true;
Quad1.SetActive (true);
playSound ("sounds/mainplayback2");
}
}
public void StopVideo ()
{
if (playing)
{
playing = false;
Quad1.SetActive (false);
stopSound ();
}
}
在最坏的情况下,有第二个摄像头附加视频对象,这样 Vuforia 就无法干扰您的视频行为,您可以随意打开和关闭它。