android - 模型未在我的 arcore 应用程序中呈现?
问题描述
E/ACameraMetadata:getConstEntry:找不到元数据标签 65578 E/ACameraMetadata:getConstEntry:找不到元数据标签 65578 E/native:hit_test.cc:381 generic::internal:没有命中。I/native:performance_monitor.cc:115 事件:FeatureExtraction 耗时太长,耗时 118.033ms W/native:motion_tracking_context.cc:838 generic::failed_precondition:调用 GetFeatureTracks,但 FeatureTracks 不可用。
检测到平面并将模型放置在平面上,但是当我单击动画按钮时,它不会动画。
package com.example.aranimation;
import androidx.appcompat.app.AppCompatActivity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Button;
import com.google.ar.core.Anchor;
import com.google.ar.sceneform.AnchorNode;
import com.google.ar.sceneform.SkeletonNode;
import com.google.ar.sceneform.animation.ModelAnimator;
import com.google.ar.sceneform.rendering.AnimationData;
import com.google.ar.sceneform.rendering.ModelRenderable;
import com.google.ar.sceneform.ux.ArFragment;
public class MainActivity extends AppCompatActivity {
private ArFragment arFragment;
private ModelAnimator modelAnimator;
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arFragment = (ArFragment)getSupportFragmentManager().findFragmentById(R.id.framgment);
arFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
if (hitResult.getTrackable() != null)
{
createModel(hitResult.createAnchor(),arFragment);
}
});
}
private void createModel(Anchor anchor, ArFragment arFragment) {
ModelRenderable.builder()
.setSource(this, Uri.parse("53_SkeletonSystem_LODa.sfb"))
.build()
.thenAccept(modelRenderable -> {
AnchorNode anchorNode = new AnchorNode(anchor);
SkeletonNode skeletonNode = new SkeletonNode();
skeletonNode.setParent(anchorNode);
skeletonNode.setRenderable(modelRenderable);
arFragment.getArSceneView().getScene().addChild(anchorNode);
Button button = findViewById(R.id.button);
button.setOnClickListener(view -> animateModel(modelRenderable));
});
}
private void animateModel(ModelRenderable modelRenderable) {
if(modelAnimator != null && modelAnimator.isRunning())
modelAnimator.end();
int animationCount = modelRenderable.getAnimationDataCount();
if (i == animationCount)
i = 0;
AnimationData animationData = modelRenderable.getAnimationData(i);
modelAnimator = new ModelAnimator(animationData, modelRenderable);
modelAnimator.start();
i++;
}
}
解决方案
推荐阅读
- elixir - 即使使用 Macro.escape,Unquoute 也不适用于地图
- node.js - Next.JS 和 Mongoose 模型
- python - 有没有办法将参数从主 bot.py 文件中的命令传递到 cog discord.py
- html - 图像未在 HTML 中显示
- scala - Databricks Upsert Spark Dataframe 无法检测到 ES 版本错误
- github - 在 sourcetree 中设置自定义 ssh 密钥
- docker - 警告:无法从文件“logs.jsonl”中读取数据,这会导致 POST 为空
- python - 如何从其他多个列的公共元素创建一个新列?
- javascript - 如何将变量附加到 Graphql 上下文?
- go - gob中的字符串编码/解码