bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


unity_ar

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
unity_ar [2022/10/19 06:19]
carlos_marin [L'Aplicació]
unity_ar [2022/10/19 13:35] (actual)
carlos_marin [Creant el Prefab]
Línia 75: Línia 75:
  
 Farem una Realitat Augmentada on a l'enfocar la càmera del mòbil a una imatge se'ns dibuixarà enganxat a aquesta imatge elements digitals. Farem una Realitat Augmentada on a l'enfocar la càmera del mòbil a una imatge se'ns dibuixarà enganxat a aquesta imatge elements digitals.
 +
 +==== Crear un nou AR Session Origin ====
  
 Partirem de l'escena per defecte que s'ha obert a l'inici tot i que la modificarem una mica. Partirem de l'escena per defecte que s'ha obert a l'inici tot i que la modificarem una mica.
Línia 85: Línia 87:
  
 Amb aquest gameObject seleccionat ens assegurem que la seva posició i rotació a la finestra //Inspector// és tot a zero. Amb aquest gameObject seleccionat ens assegurem que la seva posició i rotació a la finestra //Inspector// és tot a zero.
 +
 +==== Afegim components i la imatge pel tracking ====
  
 Com hem dit abans, aquest AR Session Origin està pràcticament buit pel que l'haurem d'afegir el component pensat per fet track d'imatge en AR. Per això, i amb l'AR Session Origin que acabem de crear seleccionat, anirem a la finestra d'Inspector i clicarem a "Add Component", buscarem un component d'Script anomenat "AR TRacked Image Manager". i l'afegim al gameObject.  Com hem dit abans, aquest AR Session Origin està pràcticament buit pel que l'haurem d'afegir el component pensat per fet track d'imatge en AR. Per això, i amb l'AR Session Origin que acabem de crear seleccionat, anirem a la finestra d'Inspector i clicarem a "Add Component", buscarem un component d'Script anomenat "AR TRacked Image Manager". i l'afegim al gameObject. 
Línia 117: Línia 121:
 Per saber el tamany de la imatge és tan fàcil com mesurar amb un regla la imatge impresa sobre la que volem fer l'AR. Les unitats que espera Unity és en metres. Per saber el tamany de la imatge és tan fàcil com mesurar amb un regla la imatge impresa sobre la que volem fer l'AR. Les unitats que espera Unity és en metres.
 </WRAP> </WRAP>
 +
 +==== Creem el Prefab ====
  
 Ara crearem el nostre prefab que serà el que s'instanciarà al moment de detectar i fer track de la imatge. Ara crearem el nostre prefab que serà el que s'instanciarà al moment de detectar i fer track de la imatge.
Línia 144: Línia 150:
 Aneu en compte i esborreu el cilindre de l'escena, no el de la carpeta prefab.  Aneu en compte i esborreu el cilindre de l'escena, no el de la carpeta prefab. 
  
 +==== Afegim el Prefab i la llibreria d'imatges a l'AR Session Origin ====
  
 Ara acabarem de configurar el GameObject "AR Session Origin" per poder donar-li tota la informació que necessita per poder fer el track sobre la imatge. Aquesta informació serà la llibreria d'imatges i l'objecte 3D que es pintarà al detectar la imatge de track.  Ara acabarem de configurar el GameObject "AR Session Origin" per poder donar-li tota la informació que necessita per poder fer el track sobre la imatge. Aquesta informació serà la llibreria d'imatges i l'objecte 3D que es pintarà al detectar la imatge de track. 
Línia 154: Línia 161:
  
 Ja tenim tot preparat per publicar i testejar la nostra primera aplicació d'AR. Ja tenim tot preparat per publicar i testejar la nostra primera aplicació d'AR.
 +
 +==== Publiquem i instal·lem l'aplicació ====
  
 Primer salvem l'escena per aplicar tots els canvis.  Primer salvem l'escena per aplicar tots els canvis. 
Línia 184: Línia 193:
 ==== Afegir un nou GameObject ===== ==== Afegir un nou GameObject =====
  
-Començarem cream un nou GameObject a la nostra escena:+Començarem creant un nou GameObject a la nostra escena:
  
   Botó dret del ratolí sobre //Hierarchy// -> Create Empty   Botó dret del ratolí sobre //Hierarchy// -> Create Empty
      
-Modifiquem a l'inspector la seva posició (x:0 ; y:0; z:0) i canviem el nom a un nom que ens ajudi a reconèixer la seva funció. Per canviar el nom tant ho podem fer clicant botò dret sobre l'objecte a //Hierarchy// o a la finestra de //Inspector// +Modifiquem a l'inspector la seva posició (x:0 ; y:0; z:0) i canviem el nom a un que ens ajudi a reconèixer la seva funció. Posar noms ens ajudarà quan tinguem escenes grans amb molts elements.  
 + 
 +Per canviar el nom tant ho podem fer clicant botò dret sobre l'objecte a //Hierarchy// o a la finestra de //Inspector// 
  
 Jo li he posat "BeetleSpawner" Jo li he posat "BeetleSpawner"
Línia 211: Línia 222:
     void Start()     void Start()
     {     {
-        InvokeRepeating("SpawnObject", 0.5f, 3);+        InvokeRepeating("SpawnObject", 0.5f, 2);
     }     }
        
Línia 223: Línia 234:
 Aquest script declara una variable pública de tipus GameObject i anomenada beetle. Aquest script declara una variable pública de tipus GameObject i anomenada beetle.
  
-Després, a la funció Start() que és la funció que s'executa quan s'inicia l'script, hem posat el mètode **InvokeRepeating** que cridarà la funció anomenada "SpawnObject" quan passin 0.5 segons i després tornarà a cridar la funció de manera indefinida cada segons.+Després, a la funció Start() que és la funció que s'executa quan s'inicia l'script, hem posat el mètode **InvokeRepeating** que cridarà la funció anomenada "SpawnObject" quan passin 0.5 segons i després tornarà a cridar la funció de manera indefinida cada segons.
  
 Per últim, a la funció "SpawnObject" cridem el mètode **Instantiate** on en crea una instancia de l'objecte "beetle", amb una posició i una rotació a la nostra escena. Hem donat una rotació de 90 graus en l'eix de les x perquè volem que el cilindre s'instanciï tombat i la rotació a l'eix de les Y serà random. Per últim, a la funció "SpawnObject" cridem el mètode **Instantiate** on en crea una instancia de l'objecte "beetle", amb una posició i una rotació a la nostra escena. Hem donat una rotació de 90 graus en l'eix de les x perquè volem que el cilindre s'instanciï tombat i la rotació a l'eix de les Y serà random.
Línia 229: Línia 240:
 Salvem l'script i tornem al Unity.  Salvem l'script i tornem al Unity. 
  
-Veurem que ara, el nostre Script te un nou slot anomenat Beetle i que és buit. Arrossegarem aqui el Cylinder que vam crear en la secció anterior i que tenim a la carpeta "Prefab"+Veurem que ara, el nostre Scriptte un nou slot anomenat Beetle i que és buit. Arrossegarem aqui el Cylinder que vam crear en la secció anterior i que tenim a la carpeta "Prefab"
  
  
Línia 239: Línia 250:
 Anem a la carpeta "Prefab" i fem doble click sobre el nostre Cylinder Anem a la carpeta "Prefab" i fem doble click sobre el nostre Cylinder
  
-L'editor se'ns modificará una mica per indicar-nos que ja no estem editant l'escena sinó que estem editant el prefab.+L'editor d'Unity se'ns modificará una mica per indicar-nos que ja no estem editant l'escena sinó que estem editant el prefab.
  
 Si volem sortir d'edició del prefab i tornar a la nostra escena clicarem al signe "**<**" de la finestra //Hierarchy// Si volem sortir d'edició del prefab i tornar a la nostra escena clicarem al signe "**<**" de la finestra //Hierarchy//
Línia 332: Línia 343:
 Ara, amb el nostre prefab desat a la carpeta podem esborrar el BeetleSpawner de la nostra escena. Ara, amb el nostre prefab desat a la carpeta podem esborrar el BeetleSpawner de la nostra escena.
  
-==== Modifiquem el AR Session Origin ====+==== Modifiquem l'AR Session Origin ====
  
 L'últim pas que ens queda a fer és modificar el AR Session Origin perquè en comptes d'instanciar el cilindre en el moment de fer track a la imatge, instaciï el nostre spawner d'escarabat. L'últim pas que ens queda a fer és modificar el AR Session Origin perquè en comptes d'instanciar el cilindre en el moment de fer track a la imatge, instaciï el nostre spawner d'escarabat.
Línia 352: Línia 363:
 Sobrescribim l'apk anterior i només queda passar-lo al nostre dispositiu a travès del cable USB i tornar a instal·lar-lo. Sobrescribim l'apk anterior i només queda passar-lo al nostre dispositiu a travès del cable USB i tornar a instal·lar-lo.
  
-==== Innovacions a l'aplicació ====+===== Innovacions a l'aplicació =====
  
 Us proposo que modifiqueu el codi per fer coses noves com ara: Us proposo que modifiqueu el codi per fer coses noves com ara:
Línia 363: Línia 374:
  
   transform.Rotate(0, 0, Random.Range(0f, 360f));   transform.Rotate(0, 0, Random.Range(0f, 360f));
 +  
 + * Si teniu coneixements de 3D podeu provar d'importar al projecte un model vostre i canviar el cilindre pel vostre.
    
 </WRAP> </WRAP>
unity_ar.1666160396.txt.gz · Darrera modificació: 2022/10/19 06:19 per carlos_marin