Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universitario.
Presentado por:
Universidad de Cundinamarca
Facultad de Ingeniería
Soacha (Cundinamarca)
Mayo 2019
Geolocalizador Móvil de AR para el Reconocimiento Del campus Universitario.
Presentado por:
Director:
Universidad de Cundinamarca
Facultad de Ingeniería
Soacha (Cundinamarca)
Mayo 2019
Tabla de contenido
Tabla de Ilustraciones ................................................................................................... 4
Introducción .................................................................................................................. 5
Herramientas tecnológicas. ........................................................................................... 6
Especificaciones Técnicas ............................................................................................. 7
Herramientas Utilizadas Para el Desarrollo. .................................................................. 8
Instalación de aplicaciones ............................................................................................ 9
Configuración de aplicaciones..................................................................................... 15
Funcionamiento de la aplicación. ................................................................................ 16
Prototipos de pantalla de aplicativo. ............................................................................ 29
Tabla de Ilustraciones
El manual técnico tiene como objetivo describir el diseño del prototipo para
ampliamente y los potenciales usuarios cada vez se internan a las nuevas tecnologías
hardware.
mejor gama debido al recurso que se pueden aprovechar sin tener inconvenientes en
la ejecución de la aplicación.
Utilizar el sistema operativo de Android permite que sea mas accesible para
los usuarios debido a que la aplicación corre en una plataforma de software libre.
Especificaciones Técnicas
la aplicación.
DEVELOP.
kit de desarrollo de software (SDK): Maps SDK para unity, Vuforia SDK Android,
SDK Tools.
Java Development Kit ( JDK): Java SE Development Kit 8u211 Windows x64.
Herramientas Utilizadas Para el Desarrollo.
Vuforia
C# o C Sharp
objetivo de Microsoft, que tiene todos los derechos sobre la plataforma de desarrollo
rapidez.
Unity
para las necesidades del desarrollador logrando crear una experiencia de juego
algunos programas que consigo traen kits de desarrollo de software que son de suma
importancia.
administrador por lo cual siempre que se ejecute un archivo se deberán contar con
estos permisos.
Instalación de Android
descargar el programa.
estén disponibles.
la instalación.
Ilustración 7: Extrayendo repositorios e instalando recursos para el sistema..
Se deben seleccionar todas las casillas que están en la imagen esto permitirá
hacer uso de las funciones que más se utilizarían para el desarrollo de la aplicación.
Configuración de aplicaciones
Para que las aplicaciones cumplan con todas las funciones se debe configurar
Funcionamiento de la aplicación.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoShared;
namespace Unigeo {
dropTestPin();
Laboratorio ();
cancha ();
dropTestLine();
dropTestLine2();
//eliminar a polygon
dropTestPolygon();
arboles ();
EntradaBC();
void EntradaBC(){
void arboles(){
void cancha(){
GameObject cancha = GameObject.FindGameObjectWithTag("cancha");
cancha.transform.localScale = new Vector3 (6,6,6);
//aBigRedSphere2.GetComponent<MeshRenderer> ().material.color =
Color.green;
goMap.dropPin(coordenadascancha,cancha);
void Laboratorio(){
goMap.dropPin(coordinates3,aBigRedSphere3);
void dropTestPin() {
goMap.dropPin(coordinates2,aBigRedSphere2);
void dropTestLine() {
float width = 4;
float height = 3;
goMap.dropLine(polyline,width,height,material,uvMappingStyle);
void dropTestLine2() {
void dropTestPolygon() {
}
}
}
aprovechara al máximo los recursos de cámara del dispositivo móvil para que se
using UnityEngine;
using System.Collections;
using Vuforia;
void Start()
{
VuforiaARController vuforia = VuforiaARController.Instance;
if (vuforia != null)
vuforia.RegisterVuforiaStartedCallback(StartAfterVuforia);
}
if (mVuforiaStarted)
{
// La aplicación se reanudó y vuforia ya comenzó
y objetos hasta el escenario, cámara y diseños 3d. este necesita de propiedades antes
aplicación recreara ante el usuario como se ven distribuidos los salones mapas y
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
PisoReconocer1.SetActive (true);
Planopiso1.SetActive(true);
Opciones.SetActive (false);
}
public void Evento2(){
PisoReconocer2.SetActive (true);
Planopiso2.SetActive(true);
Opciones.SetActive (false);
ImagenPlanopiso1.SetActive (true);
ImagenPlanopiso2.SetActive (true);
}
ImagenPlanopiso1.SetActive (false);
}
public void CerrarPlanoPiso2(){
ImagenPlanopiso2.SetActive (false);
}
}
Servicios de localización.
Recuperado a través de Input.location.lastData. El servicio no comienza a
batería. Se podrían usar valores como 5-10 para obtener la mejor precisión. El valor
propiedad Input.location. Los valores más altos como 500 implican menos
ACCESS_COARSE_LOCATION.
using UnityEngine;
using System.Collections;
if (!Input.location.isEnabledByUser)
yield break;
Input.location.Start();
if (maxWait < 1)
{
print("Timed out");
yield break;
}
// Conexión fallida
if (Input.location.status == LocationServiceStatus.Failed)
{
print("Unable to determine device location");
yield break;
}
else
{
// Acceso concedido y valor de ubicación puede ser recuperados
using System.Collections.Generic;
using UnityEngine;
if (Piso1B == null) {
Piso1B = this;
DontDestroyOnLoad (gameObject);
Debug.Log ("Soy el primero!");
loadlevela = GetComponent<loadlevels> ();
Traerdatos();
Destroy (gameObject);
Debug.Log ("yA EXISTE UN OBJETO Piso1B, Autodrestr
uir");
loadlevela = GetComponent<loadlevels> ();
//Traerdatos();
}
}
} else {
using UnityEngine;
using System.Collections;
using Vuforia;
/// <summary>
/// A custom handler that implements the ITrackableEventHandle
r interface.
///
/// Changes made to this file could be overwritten when upgrad
ing the Vuforia version.
/// When implementing custom event handler behavior, consider
inheriting from this class instead.
/// </summary>
public class DefaultTrackableEventHandler : MonoBehaviour, ITr
ackableEventHandler
{
public GameObject CuadrodeMira;
public GameObject Ventana;
#region PROTECTED_MEMBER_VARIABLES
#endregion // PROTECTED_MEMBER_VARIABLES
#region UNITY_MONOBEHAVIOUR_METHODS
#region PUBLIC_METHODS
/// <summary>
/// Implementation of the ITrackableEventHandler funct
ion called when the
/// tracking state changes.
/// </summary>
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TR
ACKED)
{
Debug.Log("Trackable " + mTrackableBehaviour.Track
ableName + " found");
OnTrackingFound();
Ventana.SetActive(true);
CuadrodeMira.SetActive(false);
}
else if (previousStatus == TrackableBehaviour.Status.T
RACKED &&
newStatus == TrackableBehaviour.Status.NO_POSE)
{
Debug.Log("Trackable " + mTrackableBehaviour.Track
ableName + " lost");
OnTrackingLost();
}
else
{
// For combo of previousStatus=UNKNOWN + newStatus
=UNKNOWN|NOT_FOUND
// Vuforia is starting, but tracking has not been
lost or found yet
// Call OnTrackingLost() to hide the augmentations
OnTrackingLost();
}
}
#endregion // PUBLIC_METHODS
#region PROTECTED_METHODS
// Enable rendering:
foreach (var component in rendererComponents)
component.enabled = true;
//Debug.Log("No se ha iniciado");
// Enable colliders:
foreach (var component in colliderComponents)
component.enabled = true;
//Debug.Log("No se ha iniciado");
// Enable canvas':
foreach (var component in canvasComponents)
component.enabled = true;
//Debug.Log("No se ha iniciado");
}
// Disable rendering:
foreach (var component in rendererComponents)
component.enabled = false;
Debug.Log("No se ha iniciado el render");
// Disable colliders:
foreach (var component in colliderComponents)
component.enabled = false;
Debug.Log("No se ha iniciado el collider");
// Disable canvas':
foreach (var component in canvasComponents)
component.enabled = false;
Debug.Log("No se ha iniciado el canvas");
}
#endregion // PROTECTED_METHODS
}