Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yaneisy

#16
También necesito saber cuando creo un gameobject esfera por el escript en c# pues cambiarle el tamaño a la esfera, ya que creo varias esferas y pues a la hora de posicionarlas si estan muy cercas  puede que esto me traiga problemas y seguro que debo reducir su radio por código. Alguien que me pueda orientar en este tema, 
#17
Vale, ya me funciono, el problema que tenia anteriormente era que cogía del txt el nombre de la imagen.jpg y sin embargo en la carpeta textura solamente esta imagen, y por eso no funcionaba lo de añadir textura, sera que: GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
             esfera.transform.position = new Vector3((float) p.x, 0, (float) p.z);//Se cre correctamente la esfera en la posicion que tengo del txt que se encuentra en Resources
             Renderer rend = esfera.GetComponent<Renderer>();
             rend.material.mainTexture = Resources.Load("texturas/"+ p.file_name) as Texture; Si p.file_name= imagen.jpg por eso cuando se busca la textura en la carpeta Resources solo se llama imagen y por eso no se la añadia a la esfera. Por ahora tuve que mediante una cadena de caracteres eliminar .jpg para que me funcione, si hay una forma mas optima indicamelo por favor.
#18
cuando hago esto me sale este mensaje de errorAssets/Lector.cs(113,42): error CS1729: The type `UnityEngine.Material' does not contain a constructor that takes `0' arguments
#19
Gracias tendre en cuenta lo que me dices para el caso que tenga que generar muchas esferas, pero por ahora para ir entendiendo esta parte he puesto esto y se crea la esfera en la posicion que le tengo asignada que la tomo de un txt, pero no me le pone la textura a la esfera ni me invierte las normales, pues yo tambien tomo del txt el nombre de la textura al igual que la posicion. Podrian ayudarme con esto a ver que pasa con el codigo //aqui necesito crear esferas recorreindo el arrayslist donde tengo almacenadas las posiciones
    void GenerarEsferas()
     {         foreach (Panorama p in Registros)
         {
             GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
             esfera.transform.position = new Vector3((float) p.x, 0, (float) p.z);//Se cre correctamente la esfera en la posicion que tengo del txt que se encuentra en Resources
             Renderer rend = esfera.GetComponent<Renderer>();
             rend.material.mainTexture = Resources.Load("texturas/"+ p.file_name) as Texture;//Esta cogiendo la textura porque me muestra su nombre que lo coge de la carpeta texturas del Resources pero no se la asigna a la esfera en el codigo de arriba ni me invierte las normales
             Debug.Log(p.file_name);
             InvertirNormales(esfera.GetComponent<MeshFilter>());
         }
     }     //funcion de invertir normales    void InvertirNormales(MeshFilter filter)
    {
        //MeshFilter filter = GetComponent(typeof(MeshFilter)) as MeshFilter;
        if (filter != null)
        {
            Mesh mesh = filter.mesh;            Vector3[] normals = mesh.normals;
            for (int i = 0; i < normals.Length; i++)
                normals = -normals;
            mesh.normals = normals;            for (int m = 0; m < mesh.subMeshCount; m++)
            {
                int[] triangles = mesh.GetTriangles(m);
                for (int i = 0; i < triangles.Length; i += 3)
                {
                    int temp = triangles[i + 0];
                    triangles[i + 0] = triangles[i + 1];
                    triangles[i + 1] = temp;
                }
                mesh.SetTriangles(triangles, m);
            }
        }
    }
#20
Hola, necesito que me ayuden para cargar en una carpeta que tengo dentro de Resources que se llama Imagenes, todas las texturas que alli se encuentran, si tienen algun ejemplo que me sirva para texturas 2D, pues lo que he visto es para Sprite y no me sirve. Ya que yo necesito guardar todas estas texturas en un arreglo o algo para luego crear Esferas y añadirles estas texturas. 
#21
General (Antiguo) / Dudas sobre Prefabs
Enero 10, 2016, 02:02:29 PM
ok, pues yo tenia duda ya que pense que si a la hora de generar esferas con distintas posiciones cada una y distintas texturas, pues al cambiar esto en el prefab todos los objetos cambiaban es decir que no iba a ser posible q tuvieran distintas pisiciones y texturas. Ya lo intentare gracias. Si tienes algun ejemplo de prefab o material de estudia te lo agradeceria
#22
General (Antiguo) / Dudas sobre Prefabs
Enero 10, 2016, 01:05:31 PM
hola, necesito saber si es posible en lo que estoy haciendo usar un prefab. Necesito crear varias esferas en la escena y que todas tengan consigo el script InvertirNormales, pero se van a diferenciar en que la textura de cada esfera y su posición no es la misma, entonces no se si haciendo un prefab esfera que tenga el script InvertirNormales asignado y luego hacer un script para generar esferas que ponga este prefab en la posición que le corresponde y con su respectiva textura. saludos
#23
hola, necesito que me ayuden, ya que tengo un fichero de texto txt donde tengo guardado varios datos de y necesito leerlo para acceder a unas posiciones y tengo este código que me funciona pero si yo quisiera  tener el fichero txt en la carpeta resources pero tengo problemas a la hora de intentar hacerlo.
 
Este es el código que tengo, lee de un fichero todas sus lineas y luego guardo solamente las posiciones de unos panoramas que debo luego ubicar.
 

            TextReader Lector;
            Lector = new StreamReader("C:\\panoramas.txt");
            //Lector1 = Resources.Load("panoramas");   algo como esto quisiera para acceder al fichero txt cuando este en la carpeta Resources.... pero me da problemas 
           
                string lineas = Lector.ReadLine();
                lineas = Lector.ReadLine();
                while (lineas != null)
                {
                    char[] delimitador = { ';' };
                    string[] palabras = lineas.Split(delimitador);
                    Panorama p = new Panorama();
                    p.x = Convert.ToDouble(palabras[11]) * 1000;
                    p.z = Convert.ToDouble(palabras[13]) * 1000;
                    Registros.Add(p);
                    lineas = Lector.ReadLine();
                }
                Lector.Close();

 
 
#24
General (Antiguo) / Clases en Unity
Diciembre 18, 2015, 02:54:14 PM
Yo no me refiero a la forma de posicionar esfera, lo que digo es que en VisualEstudio tengo las clases declaradas asi:
 

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LesctorDePanoramas
{
    class MainClass
    {
        public static void Main(string[] arg)
        {
            Lector Programa = new Lector();
            Programa.ejecutar();
        }
    }
}
 
***********************************************************************
Lector.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;
 
namespace LesctorDePanoramas
{
    public class Lector
    {
        private ArrayList Registros = new ArrayList();
        private Panorama Panorama = new Panorama();
        public Lector()
        {
            this.Registros = new ArrayList();
            this.Panorama = new Panorama();
        }
        public void ejecutar()
        {
            leer();
            imprimirR();
        }
        private void leer()
        {
            string ubicacionArchivo;
            try
            {
                /*Console.WriteLine("Dame la ubicacion del archivo");
                ubicacionArchivo = Console.ReadLine();*/
                int scala = 1000;
                TextReader Lector;
                Lector = new StreamReader("panoramas.txt");
                //StreamReader Lector = new StreamReader(ubicacionArchivo);
                string lineas = Lector.ReadLine();
                while (lineas != null)
                {
                    char[] delimitador = { ';' };
                    string[] palabras = lineas.Split(delimitador);
                    Panorama p = new Panorama();
                    p.x = palabras[11];
                    p.z = palabras[13];
                    Registros.Add(p);
                    lineas = Lector.ReadLine();
                }
                Lector.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception" + e.Message);
            }
            finally
            {
                Console.WriteLine("Lectura terminada");
            }
        }
        private void imprimirR()
        {
            foreach (object Registro in Registros)
            {
                this.Panorama = (Panorama)Registro;
                imprimirtodos();
            }
        }
        private void imprimirtodos()
        {
            // Console.WriteLine("________________________________");
            Console.WriteLine(Panorama.x);
            Console.WriteLine(Panorama.z);
            Console.WriteLine("________________________________");
            
        }
    }
}
***********************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets
{
    public class Panorama
    {
        public string file_name;
        public string file_type;
        public string camera_type;
        public string camera_subtype;
        public string sequence_id;
        public string timestamp;
        public string GPS_time;
        public string GPS_timeus;
        public string lat;
        public string lon;
        public string alt;
        public string x;
        public string y;
        public string z;
        public string trigger_id;
        public string frame_id;
        public Panorama()
        {
        }
}
}

 
 
 
Nota: Entonces en untity para usar estas cases es mi duda  ya que yo por aqui tendria las posiciones (x,z) para cuando vaya a crear mis esferas, ya que no tengo mucha experiencia por eso es que necesito de ustedes.
 
Cita de: yaneisy date=1450446854Yo no me refiero a la forma de posicionar esfera, lo que digo es que en VisualEstudio tengo las clases declaradas asi:
      
      
         Program.cs
      
      
         using System;
         using System.Collections.Generic;
         using System.Linq;
         using System.Text;
         using System.Threading.Tasks;
      
      
         namespace LesctorDePanoramas
         {
             class MainClass
             {
                 public static void Main(string[] arg)
                 {
                     Lector Programa = new Lector();
                     Programa.ejecutar();
      
      
                 }
      
      
             }
      
      
         }
      
      
         
         ***********************************************************************
      
      
         Lector.cs
      
      
         using System;
         using System.Collections.Generic;
         using System.Linq;
         using System.Text;
         using System.Threading.Tasks;
         using System.Collections;
         using System.IO;
      
      
         
         namespace LesctorDePanoramas
         {
             public class Lector
             {
                 private ArrayList Registros = new ArrayList();
                 private Panorama Panorama = new Panorama();
      
      
                 public Lector()
                 {
                     this.Registros = new ArrayList();
                     this.Panorama = new Panorama();
                 }
      
      
                 public void ejecutar()
                 {
                     leer();
                     imprimirR();
                 }
      
      
                 private void leer()
                 {
                     string ubicacionArchivo;
      
      
                     try
                     {
                         /*Console.WriteLine("Dame la ubicacion del archivo");
                         ubicacionArchivo = Console.ReadLine();*/
                         int scala = 1000;
                         TextReader Lector;
                         Lector = new StreamReader("panoramas.txt");
      
      
                         //StreamReader Lector = new StreamReader(ubicacionArchivo);
      
      
                         string lineas = Lector.ReadLine();
      
      
                         while (lineas != null)
                         {
                             char[] delimitador = { ';' };
                             string[] palabras = lineas.Split(delimitador);
      
      
                             Panorama p = new Panorama();
                             p.x = palabras[11];
                             p.z = palabras[13];
      
      
                             Registros.Add(p);
                             lineas = Lector.ReadLine();
                         }
                         Lector.Close();
      
      
                     }
      
      
                     catch (Exception e)
                     {
                         Console.WriteLine("Exception" + e.Message);
                     }
                     finally
                     {
                         Console.WriteLine("Lectura terminada");
                     }
                 }
                 private void imprimirR()
                 {
                     foreach (object Registro in Registros)
                     {
                         this.Panorama = (Panorama)Registro;
                         imprimirtodos();
                     }
                 }
                 private void imprimirtodos()
                 {
                     // Console.WriteLine("________________________________");
                     Console.WriteLine(Panorama.x);
                     Console.WriteLine(Panorama.z);
                     Console.WriteLine("________________________________");
                     
                 }
             }
      
      
         }
      
      
         ***********************************************************
      
      
         using System;
         using System.Collections.Generic;
         using System.Linq;
         using System.Text;
      
      
         namespace Assets
         {
             public class Panorama
             {
                 public string file_name;
                 public string file_type;
                 public string camera_type;
                 public string camera_subtype;
                 public string sequence_id;
                 public string timestamp;
                 public string GPS_time;
                 public string GPS_timeus;
                 public string lat;
                 public string lon;
                 public string alt;
                 public string x;
                 public string y;
                 public string z;
                 public string trigger_id;
                 public string frame_id;
      
      
                 public Panorama()
                 {
                 }
      
      
         }
      
      
         }
      
      
          
      
      
          
      
      
         Nota: Entonces en untity para usar estas cases es mi duda  ya que yo por aqui tendria las posiciones (x,z) para cuando vaya a crear mis esferas, ya que no tengo mucha experiencia por eso es que necesito de ustedes.
      
   

Pues como veia que la estructura en unity con las clases era asi:
 

using UnityEngine;
using System.Collections;
 
public class Prueba : MonoBehaviour {
    public float fieldOfView;
 
    // Use this for initialization
    void Start () {
       
        }
 
    // Update is called once per frame
    void Update()
    {
}

 
Pues pense que debia hacer cambios a las clases que ya tenia.
#25
General (Antiguo) / Clases en Unity
Diciembre 18, 2015, 02:17:48 PM
hola como llevo poco tiempo en esto de la programacion en c# y en unity, pues necesito ayuda. Yo pues tengo dos clases en c#, una se llama Lector.cs (para leer un archivo txt donde tengo almacenadas las posiciones (x,y,z) de varias imagenespanoramicas con sus caracteristicas) y otra clase Panorama.cs para crear objetos donde guardar esas posiciones, pero como he hecho esto solamente en VisualEstudio 2015 a la hora de llevarlo a Unity 5.2.1f pues no se si ocurren cambios en el formato de las clases que me funcionan. Ya que luego Necesito en unity crear esferas en distintas posiciones que estan guardadas en el objeto Panorama. Cualquier ayuda sobre el tema me sera util. 
#26
Ya estudiando mas sobre el tema veo que puedo guardar los datos del exel en un archivo .csv para luego leer este archivo y guardar los datos para poder usarlo a la hora de crear una esfera en cada posicion que esta almacenada en ese archivo csv. Si pueden ayudarme con el tema de leer y almacenar datos de un archivo csv se los agradeceria.
#27
Para aclarar mas tengo todas las posiciones de las imagenes panoramicas (x,y,z) con su nombre, guardadas en un exel, pues entonces podria yo cargar estos datos del exel en c# y trabjar con ellos a la hora de crear los prefabs para los panoramas, pues siempre creo una esfera con sus normales invertidas usando el script .cs y luego le pongo la posicion donde debe crearse y el material (textura q es la imagen panoramica que debe tener segun la posicion). Espero haberme explicado bien sobre lo que quiero hacer, para que puedas darme algunos consejos que me ayuden en mi estudio.
#28
Pues kik195 he estado analizando lo que me dices de usar prefabs, pues viendo este codigo de ejemplo de un prefabs
 

using UnityEngine;
using System.Collections;
 void Start() {
        for (int y = ; y < 5; y++) {
            for (int x = ; x < 5; x++) {
                GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                cube.AddComponent<Rigidbody>();
                cube.transform.position = new Vector3(x, y, );
            }
        }
    }
}


 

 
Donde se crea una pared de ladrillos, q viene el manual de unity, y se crea un GameObject vacío para arrastrar el scripts anterior, ahora en mi caso yo tengo que crear n esferas que ahora para probar son 30 pero en un futuro aumentaria su cantidad en dependencia de el numero de imagenes panoramicas que yo tenga del modelo 3d que estoy usando. ayudame a ubicarme pues en ese ejemplo los valores de x e y varian de 0 a 5, pero yo tengo todas las posiciones (x,y,z) donde se debe crear cada esfera en un archivo exel o txt y como no tengo tanta experiencia en la programacion, deberia yo guardar todos estos datos en algun sitio y luego ir recorriendolo para q en cada vector3(x.y.z) me pinte la esfera, le agregue la textura q es la imagen panoramica q pertenece a esa posicion y que coja la clase invertir normales q la tengo en un scripts, guiame en todo lo que puedas para seguir estudiando a ver si puedo lograr ubicar estos panoramas en el modelo 3d que tengo.
 
 
#29
hola kik195 pues si que me ha funcionado lo que me has recomendado, pero ahora tengo algo nuevo, tengo en un excel un listado con las posiciones (x,y,z) de 30 imágenes panorámicas y un modelo 3d, entonces ya manualmente no puedo poner la esfera e invertir sus normales y agregarle la imagen panorámica, ya que ahora debo buscar como guardar todas esas posiciones de los panoramas y luego en cada posición mandar a crear una esfera que tenga sus normales invertidas y tenga la textura que le corresponde según esa posición. Y luego entonces con la cámara voy a ir pasando por todos los panoramas usando esas posiciones. Pues es un nuevo reto que tengo, ayúdame y dame algunos consejos, pues no se como voy a crear esas esferas y donde voy a guardas todas esas posiciones e imágenes para que me sirvan para crear las esferas mediante scripts. 
#30
Tengo a la camara en esta posicion (-3653, -773, 4396) y necesito que al tocar una tecla (v) esa camara aparezca en el centro de la esfera (0,0,0) la cual esta situada en esta posicion  (-3699, -811, 4395). Una vez alli la camara rote y haga zoom mediante el mouse desde esa posicion sin trasladarse. Ayudenme en esto pues no tengo mucha experiencia en los scripts de c#, ya he visto algunas cosas por separado, como a esa esfera le aplique el script InvertirNormales y le agregue una imagen panoramica y situe manualmente una camara poniendole a la camara los script de zoom y rotar y funciona, pero ahora necesito crear el script que haga q la camara se traslade como he explicado mediante los vectores de posicion que tengo.