Я в настоящее время не знаком с программированием расширенной реальности, и я хотел бы задать вопрос о CameraView. Моя цель - отобразить clickable imageButton в конкретной реальной координате и отобразить его в CameraView. В этом случае вещь, которую я хочу отображать внутри моего CameraView (который является миром), - это моя кнопка. Я пробовал использовать API Wikitude/AndAR/Layar, прежде чем я решил, что это вызов для вызова его разрешения на использование, и в настоящее время я использую DroidAR в качестве библиотеки и ссылки. Однако я не могу найти способ показать, что я хочу правильно. Я хотел бы обратиться за помощью в этом вопросе. Пожалуйста, посоветуйте мне или дайте мне правильный способ ее достижения. Большое спасибо ! Ниже приведены мои текущие коды, используя SDK библиотеки droidAR.Java Android дополненная реальность Приложение Image Координаты
public class DisplayAR extends Setup {
private static final float MIN_DIST = 15f;
private static final float MAX_DIST = 55f;
private Button b = null;
protected static final String LOG_TAG = "StaticDemoSetup";
World world;
GLCamera camera;
private TimeModifier timeModifier;
@Override
public void _a_initFieldsIfNecessary() {
// allow the user to send error reports to the developer:
}
@Override
public void _b_addWorldsToRenderer(GL1Renderer renderer,
GLFactory objectFactory, GeoObj currentPosition) {
camera = new GLCamera(new Vec(0, 0, 1));
world = new World(camera);
timeModifier = new TimeModifier(1);
RenderList l = new RenderList();
timeModifier.setChild(l);
world.add(timeModifier);
initI9Tests(world);
addTestGeoObj(world, camera);
renderer.addRenderElement(world);
}
private void addTestGeoObj(World w, GLCamera c) {
GeoObj o = new GeoObj();
w.add(o);
}
private void initI9Tests(World w) {
{
// transform android ui elements into opengl models:
b = new Button(getActivity());
b.setText("L.311");
MeshComponent button = GLFactory.getInstance().newTexturedSquare("buttonId", IO.loadBitmapFromView(b));
button.addChild(new AnimationFaceToCamera(camera, 0.5f));
button.setScale(new Vec(10, 10, 10));
button.setColor(Color.red());
button.setOnClickCommand(new CommandShowToast(getActivity(), "THIS IS L.311"));
GeoObj treangleGeo = new GeoObj();
treangleGeo.setVirtualPosition(new Vec(MIN_DIST, MAX_DIST, 0.0f));
treangleGeo.setComp(button);
w.add(treangleGeo);
}
}
@Override
public void _c_addActionsToEvents(EventManager eventManager,
CustomGLSurfaceView arView, SystemUpdater updater) {
ActionWASDMovement wasdAction = new ActionWASDMovement(camera, 25f,
50f, 20f);
ActionRotateCameraBuffered rotateAction = new ActionRotateCameraBuffered(
camera);
eventManager.addOnLocationChangedAction(new ActionCalcRelativePos(
world, camera));
updater.addObjectToUpdateCycle(wasdAction);
updater.addObjectToUpdateCycle(rotateAction);
arView.addOnTouchMoveAction(wasdAction);
eventManager.addOnOrientationChangedAction(rotateAction);
eventManager.addOnTrackballAction(new ActionMoveCameraBuffered(camera,
5, 25));
}
@Override
public void _d_addElementsToUpdateThread(SystemUpdater worldUpdater) {
// add the created world to be updated:
worldUpdater.addObjectToUpdateCycle(world);
}
@Override
public void _e2_addElementsToGuiSetup(GuiSetup guiSetup, Activity activity) {
guiSetup.setBottomMinimumHeight(50);
guiSetup.setBottomViewCentered();
}
}
Ну я попробовал, что, прежде чем я перешел в настоящее время DroidAR , У Wikitude есть некоторые довольно неприятные разрешения, чтобы пройти до доступа к любому из его API, и поэтому я перешел к DroidAR. Спасибо за помощь в любом случае. Спасибо за предложение. Я забыл заполнить часть, которую я уже использовал, какой тип API/SDK. Я отредактирую их сейчас. = D – CodeNewbie
попробуйте использовать образец примера, вам ничего не нужно менять, так как он работает только на устройстве и просто передает ваши данные в виде строкового массива в wikitude, дополненную реальность. Mainactivity примерного примера –
попробовал и он работает = D И это не так много хлопот, чтобы использовать его, а не запрашивать разрешение на использование других API. Nice = D – CodeNewbie