我正在开发一个应用程序,我需要在其中以全视图打开设备相机,并且我正在为 iOS 和 Android 制作这个应用程序。那么谁能告诉我如何在 Unity 中为所有 Android 和 iPhone 设备打开全屏设备摄像头。这对我会有很大的帮助。提前致谢。
4 回答
在对谷歌和官方文档进行了更多挖掘之后。我得到了我要与你分享的解决方案,它可以帮助某人..有一天..
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 更改标签=播放器
现在创建名称为“CameraController”的 ac# 脚本,并将代码替换为以下代码
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 度时的快照:
如果您的意思是要使用相机拍摄和保存照片,我会推荐 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
有一个工具包可用于统一为 iOS 和 Android 打开设备相机,称为 CameraCaptureKit - ( https://www.assetstore.unity3d.com/en/#!/content/56673 )
所有源代码均可用,并且与 Unity UI 一样,它具有简单明了的即插即用演示 - 它解决了使用设备上的相机拍摄静止图像时遇到的一些障碍。
由于 WebCamTexture 是拍摄静止图像的通用解决方案,因此它不能锐化图像,因此在 iOS 上的质量也更低分辨率,因为它使用用于捕获实时视频的配置。
如果你想在那里打开闪光灯/手电筒,你可以使用工具包来做到这一点。
有一个很棒的插件名为Android native Camera用于打开设备相机并将视频或图像保存在设备内。目前,它只适用于安卓。