C# 团结:可以';t引用名称空间(甚至不同脚本中的方法)
我正在与Vuforia联合构建一个AR项目,并使用AVPro视频的演示版本通过HLS进行流式传输。我只想在跟踪丢失时从Vuforia脚本中的AVPro命名空间中的脚本(使用RenderHeads.Media.AVProVideo)调用Pause()方法,在再次找到跟踪时调用Play()。但是,我无法让编辑器识别RenderHeads.Media.AVProVideo命名空间中的另一个类,甚至无法识别命名空间本身。我认为这与程序集引用或文件夹级别(via)有关,但我似乎不知道如何正确解决它? 我得到的错误是: Assets/Vuforia/Scripts/DefaultTrackableEventHandler.cs(14,7):错误CS0246:找不到类型或命名空间名称“Renderheads”(是否缺少using指令或程序集引用?) 我尝试过删除并重新导入AVPro视频演示,更新Visual Studio,重新开始并重建我的项目,但什么都没有 以下是我修改的vuforia脚本的代码(不相关的部分没有发布,只是我添加的内容):C# 团结:可以';t引用名称空间(甚至不同脚本中的方法),c#,visual-studio,unity3d,vuforia,C#,Visual Studio,Unity3d,Vuforia,我正在与Vuforia联合构建一个AR项目,并使用AVPro视频的演示版本通过HLS进行流式传输。我只想在跟踪丢失时从Vuforia脚本中的AVPro命名空间中的脚本(使用RenderHeads.Media.AVProVideo)调用Pause()方法,在再次找到跟踪时调用Play()。但是,我无法让编辑器识别RenderHeads.Media.AVProVideo命名空间中的另一个类,甚至无法识别命名空间本身。我认为这与程序集引用或文件夹级别(via)有关,但我似乎不知道如何正确解决它? 我
使用UnityEngine;
使用Vuforia;
使用RenderHeads.Media.AVProVideo;
公共类DefaultTrackableEventHandler:MonoBehavior,ITrackableEventHandler
{受保护的媒体播放器;
公共游戏对象响应MediaPlayer;
公共虚拟void Start()
{mediaPlayer=ResponsiveMediaPlayer.GetComponent();}
公共虚拟空间OnTrackingFound()
{mediaPlayer.Play();}
公共虚拟空间OnTrackingLost()
{mediaPlayer.Pause();}}
任何帮助都将不胜感激,谢谢
编辑:已解决!这与脚本编译的顺序有关!我必须将所有AVPro脚本收集到一个文件夹中,然后我创建了一个程序集定义,这样脚本将与Vuforia脚本同时编译,因为它们是在编译之前编译的。要创建程序集引用,请右键单击要引用的脚本文件夹,然后创建>程序集定义。确保选中了自动引用和使用GUID。程序集定义将自动引用其所在文件夹中的所有脚本。接下来,为了能够从Vuforia脚本中引用它,我找到了Vuforiascript.asmdef文件(Vuforiascript程序集定义),并在“程序集定义引用”下的检查器中添加了我刚才创建的文件。我希望这有帮助 相对于“资产”文件夹,
DefaultTrackableEventHandler
脚本的文件夹路径和Renderheads.Media.AVProVideo
库/脚本的文件夹路径是什么?@Tenretni主脚本的路径(DefaultTrackableEventHandler)是ProjectName/Assets/Vuforia/Scripts/并且Renderheads.Media.AVProVideo库/脚本的路径位于ProjectName/Assets/AVProVideo/Scripts/Components/。AVProVideo是否使用程序集定义?@Tenretni我一直在尝试了解有关程序集和程序集引用的更多信息,以确保我理解您的要求,谢谢你的耐心!在AVPro视频中,我看不到任何以.asmdef、.dll或.exe结尾的文件,如果这是您的意思的话?相对于您的“资产”文件夹,DefaultTrackableEventHandler
脚本的文件夹路径是什么,以及Renderheads.Media.AVProVideo
library/scripts的文件夹路径是什么?@Tenretni主脚本的路径(DefaultTrackableEventHandler)是ProjectName/Assets/Vuforia/Scripts/并且Renderheads.Media.AVProVideo库/脚本的路径位于ProjectName/Assets/AVProVideo/Scripts/Components/。AVProVideo是否使用程序集定义?@Tenretni我一直在尝试了解有关程序集和程序集引用的更多信息,以确保我理解您的要求,谢谢您的帮助耐心点!在AVPro视频中,我没有看到任何以.asmdef、.dll或.exe结尾的文件,如果这是你的意思的话?
using UnityEngine;
using Vuforia;
using RenderHeads.Media.AVProVideo;
public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
{ protected MediaPlayer mediaPlayer;
public GameObject ResponsiveMediaPlayer;
public virtual void Start()
{ mediaPlayer = ResponsiveMediaPlayer.GetComponent<MediaPlayer>(); }
public virtual void OnTrackingFound()
{ mediaPlayer.Play(); }
public virtual void OnTrackingLost()
{ mediaPlayer.Pause(); } }