【问题标题】:in Unity, Android Device Camera not working在 Unity 中,Android 设备摄像头无法正常工作
【发布时间】:2016-04-01 12:57:46
【问题描述】:

当我构建我的统一项目时,它已安装到我的手机上,我需要使用手机摄像头,但摄像头无法正常工作,实际上无法打开。

AndroidManifest

<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>
  <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus"     android:required="false" />

另外,我用 adb devices 查看了可用的设备,它显示了我的设备,我的意思是电话

C# 脚本

我尝试在设备管理器中更新 USB 驱动程序,在 9-23 之间安装了 Android SDK API,我的手机 USB 调试 已启用。 还有一件事,如果我尝试在统一控制台中查看设备

WebCamDevice[] devices = WebCamTexture.devices;
    for( var i = 0 ; i < devices.Length ; i++ )
        Debug.Log(devices[i].name);

它只显示我的笔记本电脑摄像头,它是打开笔记本电脑的摄像头。有什么建议吗?

【问题讨论】:

  • 我敦促您从资产商店购买 NatCam (assetstore.unity3d.com/en/#!/content/52154) Unity 最糟糕的事情是设备摄像头支持。它甚至不是测试版。它只是一个占位符,而 Unity 制作了一些实际的软件。您可以花费 实际上两到三周 尝试使用 Unity 的内置笑话代码让设备摄像头正常工作。我宁愿去麦当劳工作一天以赚到足够的钱来购买它:哦,考虑到这么多应用程序当然需要设备摄像头,这是一个巨大的问题!
  • 非常感谢@JoeBlow,他用该死的统一相机帮了我很多忙:看到这个答案,你可以从中提取很多信息:stackoverflow.com/questions/35845540/…
  • 我只希望我有更多的时间来提供更多帮助!

标签: unity3d


【解决方案1】:

等一下。如果您使用 Unity Remote 调试您的应用程序,它肯定不会工作。

Unity 远程应用实际上是一种流媒体服务:它获取用户输入,将其发送到 Unity,播放全部内容,然后流回视频。

这就是它不起作用的原因:您的设备上实际上没有执行任何操作。

只需构建调试它。

附:这就是为什么 Unity Remote 的性能很差的原因。

P.P.S. :Unity Remote 下的压缩和质量设置是指视频流的压缩和质量。真是LOL

【讨论】:

  • 所以.. 我该怎么办?没看懂,一周前就开始学unity了,能再解释一下remote to debug your app是什么意思吗?
  • 您是如何将应用安装到手机上的?
  • 在构建项目并构建和运行之后,我每次都使用 ctrl+b
  • 好的,这是正确的方法。顺便说一句,您发布的第二个屏幕与此问题完全无关,这就是我所说的。如果你只购买一个插件真的比潜入意大利面条代码更好
  • ooo 我明白了,但还有一个问题,如果我不想购买插件以及如何制作自己的插件,我的意思是,我想自己打开手机摄像头,而不是用电脑.我该怎么做?
【解决方案2】:

问题已解决。 :) 以下解决方案对我有用.. 我认为它对你也有帮助。把这个脚本放在相机上 使用 UnityEngine; 使用 UnityEngine.Android;

public class permissionscript : MonoBehaviour
{
    GameObject dialog = null;
    void Start()
    {
#if PLATFORM_ANDROID
        if (!Permission.HasUserAuthorizedPermission(Permission.Camera))
        {
            Permission.RequestUserPermission(Permission.Camera);
        }
#endif
    }
}

// 这是我的设备相机脚本

using UnityEngine;
using UnityEngine.UI;

public class simplecamera : MonoBehaviour
{
    static WebCamTexture backCam;

    void Start()
    {
        WebCamDevice[] devices = WebCamTexture.devices;
        if(backCam == null)
        {
            backCam = new WebCamTexture();
        }
        GetComponent<RawImage>().texture = backCam;
        backCam.Play();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2019-02-04
    相关资源
    最近更新 更多