Плагин, устанавливающий плоскость

#flutter #dart #arcore

#flutter #dart #arcore

Вопрос:

Я использую Flutter для AR-приложения. Это часть кода, которая создает сферу:

  void _addSphere(ArCoreController controller) {
    final material = ArCoreMaterial(
      color: Color.fromARGB(255, 66, 134, 244),
    );
    final sphere = ArCoreSphere(
      materials: [material],
      radius: 0.1,
    );
    final node = ArCoreNode(
      shape: sphere,
      position: plane.pose.translation   vector.Vector3(0, 0, -1.5),
    );
    controller.addArCoreNodeWithAnchor(node);
  }
  

Из того, что я видел в нескольких других примерах, эта часть, похоже, работает. Но я получаю сообщение об ошибке plane is not defined, которое, как я понял, нигде не определено в коде.

Имеет смысл, что это часть некоторого пакета, который необходимо импортировать, например, векторный пакет:

import 'package:vector_math/vector_math_64.dart' as vector;

Но я не могу найти plane его эквивалент.

Что я делаю не так?

Ответ №1:

Да, вы не определили, что такое плоскость. Вам нужно сделать что-то вроде этого.

      void _handleOnPlaneTap(List<ArCoreHitTestResult> hits) {
       final hit = hits.first;
         _addSphere(arCoreController, hit);
     }

     void _addSphere(ArCoreController controller, ArCoreHitTestResult plane) {
       final material = ArCoreMaterial(
         color: Color.fromARGB(255, 66, 134, 244),);
     final sphere = ArCoreSphere(
       materials: [material],
        radius: 0.1,);
     final node = ArCoreNode(
       shape: sphere,
        position: plane.pose.translation   vector.Vector3(0, 0, -1.5),
     );
     controller.addArCoreNodeWithAnchor(node);
     }