Jump to content
UnitySpain

Raúl

Registrados
  • Content Count

    17
  • Joined

  • Last visited

  • Days Won

    1

Raúl last won the day on November 29 2017

Raúl had the most liked content!

Community Reputation

3 Neutral

About Raúl

  • Rank
    Iniciado

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. ya le puse un mail, a ver que me dice
  2. Haberla la hay el problema es que no funciona en HoloLens, en el editor de unity va perfecto pero cuando lo meto en el dispositivo no funciona :/ dejo enlace de la doc por si alguno ve algo que yo me he pasado https://ricardoreis.net/trilib/manual/html/index.html
  3. Lo primero, gracias a los dos por las respuestas Lo que cargo en la escena son objetos3d (.fbx) que descargo y posteriormente cargo en la escena en tiempo de ejecución, utilizo una librería de la assetStore llamada Trilib para ayudarme con este proceso ya que solo no conseguí hacerlo ( Trabajo con HoloLens esto hace que la mayoria de metodos "tradicionales" no me funcionen). Al hacerlo en tiempo de ejecución no conseguí que el Resources.Load me funcionara.. asi que no se que mas probar.. He probado a crear un thread para la ejecucion Thread saveThread = new Thread(o => { //Aquí puse la llamada a la libreria que se encarga de cargar los objetos }); saveThread.Start(); Sin embargo me dice que esa llamada debe estar en el Thread principal.
  4. Buenos días! Estoy desarrollando una aplicación que descarga de un servidor modelos 3D para luego cargarlos en la escena. Para la parte de la descarga he conseguido hacerlo de manera "asincrona". Sin embargo, a la hora de cargar los objetos pese a meter toda la ejecución de la carga de objetos dentro de una co-rutina tanto en el editor como en el dispositivo, la ejecución del programa se "detiene" 3 o 4 segundos hasta que la carga finaliza. Hay alguna forma de evitar esos 3,4 segundos? private void addModel(string path, StepContent model) { StartCoroutine(LoadObjets(path, model)); } IEnumerator LoadObjets(string path, StepContent model) { // Aqui va todo el codigo de la carga. yield return null; } Un saludo y Gracias!
  5. Al final he conseguido arreglarlo el encargado de hacer el back-end de la aplicacion puede mandarme la rotacion en quaternions en vez de en grados con lo cual yo solo he tenido que crear el quaternion con esos valores que recojo y listo jajaj
  6. Gracias por la respuesta, he seguido haciendo pruebas.. utilizando el transfor.Rotate gameObjectActual.transform.Rotate(xx, yy, zz); en la escena tengo 3 objetos: objeto 1 cuyos angulos son (30,10,20) utilizando la linea de código de arriba funciona bien y se gira correctamente el objeto 2 tiene de angulos (-30,-10,-20) al igual que el primero se gira correctamente sin embargo el objeto 3 que tiene de angulos( -120,-110,-100) no gira bien de los valores que tenia en origen me pasa a (-60,70,80) no entiendo por que.. esta claro que algo me esta pasando con los angulos que pasan de 90º pero nose el que :( Gracias a todos por la ayuda
  7. a esa conclusion ya había llegado, gracias
  8. he probado las 2 opciones que me has dicho y en ambas me pasa igual, me modifica los valores pero a unos que no son los que yo le paso he probado a hacerlo "por partes" primero añado xx e yy quedando el vector (xx,yy,0) y si que se meten los valores bien pero en cuanto añado la z (xx,yy,zz) se estropean todos los valores :S
  9. Buenos dias, estoy trabajando en una aplicación en la que descargo los componentes transform de un gameObject e intento aplicarselos durante la ejecución, para aplicar la posición no he tenido ningun problema pero para aplicar la rotacion no he sido capaz, el objeto gira pero no con los valores que yo le paso he probado varias formas y ninguna funciona, adjunto la parte del codigo donde lo intento hacer Quaternion rota = new Quaternion(); // defino un quaternion xx = siho[i].rotationX; // los valores los tengo almacenados en un array por eso hago esa asignación rota.x = xx; yy = siho[i].rotationY; rota.y = yy; zz = siho[i].rotationZ; rota.z = zz; gameObjectActual.transform.rotation= rota; He comprobado los valores de las variables xx,yy,zz y si que contienen los valores que yo busco pero a la hora de girar el objeto aparecen otros valores :( Un saludo y gracias de antemano!
  10. bien, estoy probando a guardar en el persistentDataPath, el problema ahora me viene con vuforia ya que por defecto solo leee las bases de datos que se hayan guardado en el path de streamming assets, he mirado en la documentacion DocVuforia y hay otro metodo para guardar donde puedes definir el path sin embargo no me esta funcionando de momento, esta es la linea que estoy colocando if (dataSet.Load(Application.persistentDataPath+"/150", VuforiaUnity.StorageType.STORAGE_ABSOLUTE)){ .... } Gracias! EDITO: ya esta, ya consegui que funcionara habia que añadir.XML al nombre Muchas gracias Braltor!!
  11. He probado utilizando el www.isDone de esta manera IEnumerator GetDAT() { WWW www = new WWW(url); while (i == 0) { if (www.isDone) { yield return www; System.IO.File.WriteAllBytes(Application.streamingAssetsPath + "/Vuforia/150.dat", www.bytes); lod.DatListo();//esto lo utilizo para avisar a la otra script de que ya esta descargada esta parte. i = 1; pelo.aVerde(); // y para yo poder ver en las gafas que se ha completado la descargar cambio el color de una pelota que puse a verde } } } Teoricamente en la escena ahora mismo hay 2 pelotas y 1 cubo, cuando las pelotas se ponen verdes quiere decir que ya esta descargada la base de datos y entonces mediante un click(en el cubo) , inicio los metodos de vuforia. El problema que me estoy encontrando es que nunca se ponen verdes (ejecutando en las gafas, en el editor de unity si funciona) Gracias por al respuesta!! He utilizado el debugger de visual studio para ver que error me daba durante la ejecución y he visto que es problema de acceso a la ruta donde esta guardada la base de datos (adjunto imagen) lo que nose es como otorgar los permisos para poder acceder
  12. Buenos días a todos! Os pongo en situación, estoy haciendo una aplicación para HoloLens en la que uso el reconocimiento de imagenes que proporciona Vuforia y la verdad esque funciona bastante bien(siempre y cuando añada la base de datos en unity). Ahora quiero ir un paso mas y poder descargar la base de datos durante la ejecución en las gafas. Una base de datos de Vuforia consiste un dos archivos un tipo dat y un xml que deben colocarse en la ruta /../StreamingAssets/Vuforia/. He creado un empty GameObject en la escene y la he agregado las siguientes scripts LoadXML.cs en la que descargo y guardo la parte del XML public class LoadXML : MonoBehaviour { public string url = @"AQUI PONGO LA URL DE MI SERVIDOR"; public string XML; public LoaderDataSet lod; // Use this for initialization void Start () { StartCoroutine(GetXML()); } // Update is called once per frame void Update () { } IEnumerator GetXML() { WWW www = new WWW(url); yield return www; // var XML = www.text; System.IO.File.WriteAllBytes(Application.streamingAssetsPath + "/Vuforia/150.xml", www.bytes); } } LoadDat.cs en la que descargo y guardo el DAT public class LoadDat : MonoBehaviour { public string url = @"AQUI VA LA URl"; public string dat; // Use this for initialization void Start () { StartCoroutine(GetDAT()); } // Update is called once per frame void Update () { } void Awake() { } IEnumerator GetDAT() { WWW www = new WWW(url); yield return www; System.IO.File.WriteAllBytes(Application.streamingAssetsPath + "/Vuforia/150.dat", www.bytes); } } y finalmente la tercera script LoaderDataSet.cs en la que creo el objecto donde va a ir el reconocimiento le añado todos los componentes necesarios public class LoaderDataSet : MonoBehaviour { public GameObject augmentationObject = null; // you can use teapot or other object public string dataSetName = ""; ObjectTracker objectTracker; DataSet dataSet; int cont = 0; public GameObject cosa; // Use this for initialization void Start () { StartCoroutine(ExecuteAfterTime(5)); } // Update is called once per frame void Update () { } public void empezar() { VuforiaARController.Instance.RegisterVuforiaStartedCallback(LoadDataSet); } IEnumerator ExecuteAfterTime(float time) { yield return new WaitForSeconds(time); // Code to execute after the delay empezar(); } void LoadDataSet() { objectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>(); dataSet = objectTracker.CreateDataSet(); //AQUI ES donde creo que falla if (dataSet.Load(dataSetName)) { objectTracker.Stop(); // stop tracker so that we can add new dataset if (!objectTracker.ActivateDataSet(dataSet)) { // Note: ImageTracker cannot have more than 100 total targets activated Debug.Log("<color=yellow>Failed to Activate DataSet: " + dataSetName + "</color>"); } if (!objectTracker.Start()) { Debug.Log("<color=yellow>Tracker Failed to Start.</color>"); } int counter = 0; IEnumerable<TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours(); foreach (TrackableBehaviour tb in tbs) { print("1"); if (tb.name == "New Game Object") { // change generic name to include trackable name tb.gameObject.name = ++counter + ":DynamicImageTarget-" + tb.TrackableName; // add additional script components for trackable tb.gameObject.AddComponent<DefaultTrackableEventHandler>(); tb.gameObject.AddComponent<TurnOffBehaviour>(); if (augmentationObject != null) { // instantiate augmentation object and parent to trackable GameObject augmentation = (GameObject)GameObject.Instantiate(augmentationObject); augmentation.transform.parent = tb.gameObject.transform; augmentation.transform.localPosition = new Vector3(0f, 0f, 0f); augmentation.transform.localRotation = Quaternion.identity; augmentation.transform.localScale = new Vector3(1f, 1f, 1f); augmentation.gameObject.SetActive(true); } else { Debug.Log("<color=yellow>Warning: No augmentation object specified for: " + tb.TrackableName + "</color>"); } } } } else { Debug.LogError("<color=yellow>Failed to load dataset: '" + dataSetName + "'</color>"); } } } En el editor de unity todo funciona correctamente pero en las gafas no, por lo que he podido entender las carpetas que tengo antes de compilar y que tengo despues son diferentes entonces no se de que manera guardar los archivos. Alguna idea? Muchas gracias de antemano!
  13. Solucionado, tenia en una carpeta perdida por ahi una Script de nombre photo capture y por eso no me estaba cogiendo la definicion de la libreria jajja
  14. Buenos días, Estoy desarrollando una aplicación para HoloLens y una de las funcionalidades que debe ofrecer es la de poder sacar una foto y mostrarla en un gameObject, para ello he visto que en la doc de Unity hay un ejemplo de como se hace(https://docs.unity3d.com/2017.2/Documentation/ScriptReference/XR.WSA.WebCam.PhotoCapture.html) me he dispuesto a probarlo para ver como funcionaba y tal. Me he encontrado con el siguiente error en varias partes del codigo PhotoCapture no contiene una definición para ... (falla en varios sitios, CreateAsync, SupportedResolution, etc.) Llevo un par de horas buscando una solucion y no veo a nadie que le haya pasado lo mismo, alguna idea? Un saludo y gracias!! PD: estoy usando la version de unity 2017.2.0f3
  15. Gracias tio ya esta, llevaba 3 hrs atascado en eso pff...
×
×
  • Create New...