объект textview постоянно колеблется в сцене - PullRequest
1 голос
/ 28 мая 2019

Используя приведенный ниже код, textView всегда направлен на камеру.Тем не менее, объект textview остается шатким все время.Можно ли добавить привязку с кодом ниже, чтобы объект textview оставался неподвижным и статичным при вращении телефона?

Я пытался отобразить объект textview на сцене и всегда смотреть в камеру.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.sceneform_arfragment);
    arFragment.getPlaneDiscoveryController().hide();
    arFragment.getPlaneDiscoveryController().setInstructionView(null);
    arFragment.getArSceneView().getPlaneRenderer().setEnabled(false);

    node = new Node();
    node.setParent(arFragment.getArSceneView().getScene());
    node.setLocalPosition(new Vector3(0f, 0f, -1f));

    ViewRenderable.builder()
            .setView(this, R.layout.card)
            .build()
            .thenAccept(renderable -> {
                node.setRenderable(renderable);
                TextView textView = (TextView) renderable.getView();
                textView.setText("Hello Sceneform");
            });
  arFragment.getArSceneView().getScene().addOnUpdateListener(this::onSceneUpdate);}

private void onSceneUpdate (FrameTime frameTime) {

arFragment.onUpdate(frameTime);
Vector3 cameraPosition = arFragment.getArSceneView().getScene().getCamera().getWorldPosition();
Vector3 cardPosition = node.getWorldPosition();
Vector3 direction = Vector3.subtract(cameraPosition, cardPosition);
Quaternion lookRotation = Quaternion.lookRotation(direction, Vector3.up());
node.setWorldRotation(lookRotation);

}

Мой ожидаемый результат - объект textview, обращенный к камере без дрожания.

...