【问题标题】:Open device camera for iPhone and Android in Unity3d在 Unity3d 中打开 iPhone 和 Android 的设备相机
【发布时间】:2018-08-28 13:09:12
【问题描述】:

我正在开发一个应用程序,我需要在其中以全视图打开设备摄像头,并且我正在为 iOS 和 Android 制作这个应用程序。那么谁能告诉我如何在 Unity 中为所有 Android 和 iPhone 设备打开全屏设备摄像头。 这对我会有很大的帮助。提前致谢。

【问题讨论】:

  • 统一标签适用于 Microsoft Unity。请不要滥用它。
  • 为什么选择微软?我在 Mac OSX 中使用 Unity,并为 iPhone 和 Android 构建应用程序,所以我为什么要提到 Microsoft。
  • 不,有一个名为 Unity 的 Microsoft 产品,它与游戏引擎/创作工具无关。引擎的正确标签是unity3d
  • 对的 Calvin,我会用 Unity3d :)

标签: iphone android-camera unity3d


【解决方案1】:

在对 Google 和官方文档进行了更多挖掘之后。我得到了解决方案,我将与您分享,它可以帮助某人.. 有一天..

1.创建新项目。

2.在GameObject中选择Main Camera并通过Inspector改变Transform

位置 X= -90 Y=785 Z=0 旋转 X=90 Y=90 Z=0 缩放 X=1 Y=1 Z=1

3.现在转到GameObject -> Create Other -> Plane。

4.在GameObject中选择Main Camera并

4.1 通过 Inspector 改变 Transform

位置 X=0 Y=0 Z=0 旋转 X=0 Y=0 Z=0 缩放 X=100 Y=100 Z=100

4.2 更改 Tag=Player

现在创建一个名为“CameraController”的 c# 脚本并将代码替换为下面的代码

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour
{
        public WebCamTexture mCamera = null;
        public GameObject plane;

        // Use this for initialization
        void Start ()
        {
                Debug.Log ("Script has been started");
                plane = GameObject.FindWithTag ("Player");

                mCamera = new WebCamTexture ();
                plane.renderer.material.mainTexture = mCamera;
                mCamera.Play ();

        }

        // Update is called once per frame
        void Update ()
        {

        }
}

5.最后保存并将这个脚本文件拖到“Plane”游戏对象上

注意 - 您可能会在 Unity 游戏视图中看到旋转的预览,但在 RealDevice 上它运行良好。在 iPhone5 和 Android - Nexus 5 上测试。

如果将旋转角度更改为 180,以下是快照:

【讨论】:

  • 我正在使用您的脚本来显示相机。它运行良好。但是如何调整平面的大小,使其根据设备屏幕大小调整大小?以便平面可以适应设备的高度和宽度。
  • 这在 Unity 2019 中不起作用,设备摄像头正在启动但它没有显示任何内容。
【解决方案2】:

如果您的意思是要使用相机拍摄和保存照片,我推荐 Prime31 的 iOS 和 Android 插件。不幸的是,Etcetera 插件每个平台的价格为 65 美元,但我都使用过它们,而且效果很好。

http://u3d.as/content/prime31/i-os-etcetera-plugin/2CU

http://u3d.as/content/prime31/android-etcetera-plugin/2CY

如果您只想在应用场景中显示相机的实时输出,您可以创建一个平面并使用 WebCamTexture 来显示相机的实时视频输出。

http://docs.unity3d.com/Documentation/ScriptReference/WebCamTexture.html

【讨论】:

    【解决方案3】:

    有一个工具包可用于在 iOS 和 Android 上统一打开设备相机,称为 CameraCaptureKit - (https://www.assetstore.unity3d.com/en/#!/content/56673)

    所有源代码均可用,并且与 Unity UI 一样,它具有简单明了的即插即用演示 - 它解决了使用设备上的相机拍摄静止图像时遇到的一些障碍。

    由于 WebCamTexture 是拍摄静止图像的通用解决方案,因此它无法锐化图像,因此在 iOS 上的质量也更低分辨率,因为它使用用于捕获实时视频的配置。

    如果你想在那里打开闪光灯/手电筒,你可以使用工具包来做到这一点。

    【讨论】:

      【解决方案4】:

      有一个很棒的插件名为Android native Camera 用于打开设备相机并将视频或图像保存在设备内。目前,它只适用于安卓。

      【讨论】:

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