java 检测点击事件控件_使用ARCore检测平面并点击事件

此示例展示了一个Android应用,它使用ARCore检测水平表面,并在用户点击时在点击位置渲染Android机器人“Andy”。文章探讨了如何在检测到平面后调整并重新定位Andy,以及寻找触发点击事件的代码位置。
摘要由CSDN通过智能技术生成

在此示例中,当您将应用程序部署到Android时,会检测到任何水平曲面/平面 . 如果您点击检测到的平面,“Andy”将会在您点击的位置渲染Andrid机器人 . 很酷 .

我试图找到代码中的位置:

这是检测到水平表面/平面;和

逻辑在哪里正确地调整大小并重新定位Andy(我假设你点击的点离相机更远,他会变小,等等)

我相信当检测到飞机时,Android框架会调用 onSurfaceCreated 方法:

@Override

public void onSurfaceCreated(GL10 gl, EGLConfig config) {

GLES20.glClearColor(0.1f, 0.1f, 0.1f, 1.0f);

// Create the texture and pass it to ARCore session to be filled during update().

mBackgroundRenderer.createOnGlThread(/*context=*/this);

mSession.setCameraTextureName(mBackgroundRenderer.getTextureId());

// Prepare the other rendering objects.

try {

mVirtualObject.createOnGlThread(/*context=*/this, "andy.obj", "andy.png");

mVirtualObject.setMaterialProperties(0.0f, 3.5f, 1.0f, 6.0f);

mVirtualObjectShadow.createOnGlThread(/*context=*/this,

"andy_shadow.obj", "andy_shadow.png");

mVirtualObjectShadow.setBlendMode(BlendMode.Shadow);

mVirtualObjectShadow.setMaterialProperties(1.0f, 0.0f, 0.0f, 1.0f);

} catch (IOException e) {

Log.e(TAG, "Failed to read obj file");

}

try {

mPlaneRenderer.createOnGlThread(/*context=*/this, "trigrid.png");

} catch (IOException e) {

Log.e(TAG, "Failed to read plane texture");

}

mPointCloud.createOnGlThread(/*context=*/this);

}

但是,该代码看起来假设用户已经在表面上轻敲 . 我没有看到一个 if -有条件的,基本上说“用户已经检测到平面/表面上的渲染Andy _1300261” . 任何人都可以发现这可能发生的地方吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值