我一直在Unity上用3个场景构建一个Android应用程序.前2个场景完美无缺,但最后一个场景给我带来了麻烦.游戏一直在崩溃
因此,在查看Unity论坛时,他们建议我将所有对象粘贴到新场景上并尝试查看它是否有效.
但是现在我已经这样做了,我甚至都无法导出它.在构建播放器时,我的装载机卡住了这个:Building Scene 2: Name (10/15 Bake Runtime | 1 jobs)
我没有更改设置中的任何其他内容,如果我删除第3个场景,它会正常构建.当我只添加第3个场景时,它会卡在同一个场景上.
可能是什么问题呢?
我的目标是UILabel
使用图像跟踪和Vuforia AR SDK 覆盖标准UIKit视图(暂时,我只是创建一个但最终我将拥有自定义内容)在检测到的形状上.我有一些有用的东西,但有一个我不能解释的"软糖"术语.我想知道我的错误在哪里,所以我可以证明这种修正的存在,或者使用一种已知有效的不同算法.
我的项目基于Vuforia SDK中的ImageTargets示例项目.如果他们EAGLView
迭代结果来渲染OpenGL茶壶,我已经用调用我的ObjC++类来替换它TrackableObjectController
.对于每个可跟踪的结果,它执行以下操作:
- (void)augmentedRealityView:(EAGLView *)view foundTrackableResult:(const QCAR::TrackableResult *)trackableResult
{
// find out where the target is in Core Animation space
const QCAR::ImageTarget* imageTarget = static_cast<const QCAR::ImageTarget*>(&(trackableResult->getTrackable()));
TrackableObject *trackable = [self trackableForName: TrackableName(imageTarget)];
trackable.tracked = YES;
QCAR::Vec2F size = imageTarget->getSize();
QCAR::Matrix44F modelViewMatrix = QCAR::Tool::convertPose2GLMatrix(trackableResult->getPose());
CGFloat ScreenScale = [[UIScreen mainScreen] scale];
float xscl = qUtils.viewport.sizeX/ScreenScale/2;
float yscl = qUtils.viewport.sizeY/ScreenScale/2;
QCAR::Matrix44F projectedTransform = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud) 如果Apple的ARKit支持像Vuforia那样的3D对象跟踪(甚至图像跟踪),我找不到任何信息.我不想在世界任何地方放置3D模型.相反,我想检测特定的3D对象并将AR对象放在该对象的前面和顶部.
简单的例子:我想跟踪现实世界中的特定玩具车,并在AR场景中添加扰流板.
有人可以提供我可能的信息吗?
我是增强现实领域的初学者,致力于使用智能手机创建建筑计划(平面图,房间平面图等,具有精确测量)的应用程序.所以我正在研究可用于此的最佳AR SDK.Vuforia对抗ARCore和ARKit的文章并不多.
请建议使用最好的SDK,各自的优点和缺点.
我使用Vuforia SDK在Unity中创建了一个小应用程序.它识别图像并在其顶部投影3D模型.我可以在Unity Editor中运行应用程序,但在我尝试创建iOS项目并在设备上运行应用程序时遇到问题.
我试图在iPhone X(iOS版本11.3)上运行它,这是我在应用程序启动时得到的错误:
收到屏幕大小为零的VideoBackgroundConfig,跳过配置步骤
我在网上搜索了这个问题,但我得到的解决方案没有用.我使用的是Vuforia版本7.0.47,Unity版本2017.3.1f1个人版和XCode版本9.3 beta 4.
有人可以提供一些指示吗?
我正在编译QCAR SDK,但是在我向项目中添加了更多框架后会出现错误.
// Matrices.h
//
#ifndef _QCAR_MATRIX_H_
#define _QCAR_MATRIX_H_
namespace QCAR
{
/// Matrix with 3 rows and 4 columns of float items
struct Matrix34F {
float data[3*4]; ///< Array of matrix items
};
/// Matrix with 4 rows and 4 columns of float items
struct Matrix44F {
float data[4*4]; ///< Array of matrix items
};
} // namespace QCAR
#endif //_QCAR_MATRIX_H_
Run Code Online (Sandbox Code Playgroud)
在线namespace QCAR
,它说Unknown type name 'namespace'
.
我该怎么办 ?
更新:这是构建脚本
In file included from ../../build/include/QCAR/Tool.h:18:
In …
Run Code Online (Sandbox Code Playgroud) 我一直在努力让相机补丁样本统一工作.
我终于成功地在编辑器中工作了但是因为我的生活不能使它在我的三星galaxy s3(android)上运行.
我能看到的唯一区别是cameraTextureRatio,在编辑器中1.0 1.0,纹理和图像大小相同.在我的手机上它是:
_CAMERATEXTURE_RATIO_X:0.625
_CAMERATEXTURE_RATIO_Y:0.9375
Run Code Online (Sandbox Code Playgroud)
决议:
VideoTextureInfo 1024 512 640 480
Run Code Online (Sandbox Code Playgroud)
我正在计算它:
cameraTextureRatio.x = (float)texInfo.imageSize.x / (float)texInfo.textureSize.x ;
cameraTextureRatio.y = (float)texInfo.imageSize.y / (float)texInfo.textureSize.y ;
Run Code Online (Sandbox Code Playgroud)
我的着色器是:
Shader "Custom/VidTexPatch" {
Properties {
_MainTex("Texture", 2D) = "white" { }
}
SubShader{
Pass{
Cull Back
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4x4 _MATRIX_MVP;
float _CAMERATEXTURE_RATIO_X ;
float _CAMERATEXTURE_RATIO_Y ;
struct v2f{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
v2f vert(appdata_base v){
v2f o;
float2 targetSize …
Run Code Online (Sandbox Code Playgroud) 我想通过点击屏幕在Vuforia (没有Unity)中制作调色板的可点击单元格:
我找到了具有类似功能的Dominoes示例并执行此操作:
创建一个板块对象并乘以单元格对象
调用isTapOnSetColor函数,点击参数x,y(点击坐标)并获取坐标,
坐标是正确的,但获取部分对象的id/name是错误的
我觉得这行问题:
boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);
Run Code Online (Sandbox Code Playgroud)
在Dominoes示例中,这是:
bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
Run Code Online (Sandbox Code Playgroud)
但我不知道做什么domino->pickingTransform
和粘贴代替这行modelViewMatrix(Tool.convertPose2GLMatrix(trackableResult.getPose()).getData())
我的触摸功能的完整代码:http://pastebin.com/My4CkxHa
你能帮助我做点击或者可能是另一种方式(不是Unity)吗?
我想知道是否可以将Unity/Vuforia场景正确添加到Android设备的React Native应用程序中,从而能够在React Native和Unity/Vuforia之间共享数据,反之亦然(某种"桥").例如,通过单击React Native按钮可以启动Unity/Vuforia场景,并通过单击Unity/Vuforia场景中的按钮,可以更新React Native中变量中的某些数据.
另一方面,如果真的有可能,我该怎么做?我想在我的React Native移动应用程序中实现一些教程或示例.
谢谢!
以下是我在Window 8上的Android Studio上运行Vuforia示例的方法
1 - 下载,exctract示例,删除文件.project和project.properties
2 - 在Android Studio上:导入项目,下一步,下一步...
3 - 下载并安装android NDK http://developer.android.com/tools/sdk /ndk/index.html
4 - 下载并安装cygwin http://cygwin.com/
5 - 编辑文件jni/Android.mk
__PRE__
Vuforia-sdk是你的vuforia sdk
6-在项目文件夹中打开cmd并
在android studio中执行"ndk-build" 7-,在项目结构,模块,"YourModuleName",依赖项,添加jar,为我选择正确的vuforia sdk路径:
__PRE__
8-在Android Studio
9中构建和运行您的项目 - 玩得开心!
*不要忘记ndk&cygwin的PATH变量
android augmented-reality android-ndk vuforia android-studio
vuforia ×10
android ×5
ios ×4
arkit ×2
swift ×2
android-ndk ×1
arcore ×1
iphone ×1
java ×1
objective-c ×1
react-native ×1
uikit ×1
xcode4.2 ×1