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

#1
General (Antiguo) / sistemas de coordenadas unity
Marzo 10, 2016, 05:26:03 PM
tienes algun material, que puedas decirme para estudiarme de unity
  • Sistema de coordenadas.
  • Diferentes espacios. (local y global).
 saludos
#2
General (Antiguo) / sistemas de coordenadas unity
Marzo 10, 2016, 05:08:32 PM
Hola, como soy nueva en unity, necesito que me ayuden, en este tema orientandome que debo estudiarme. Yo de un archivo txt leo unas coordenadas de latitud y longitud de un mapa, y necesito que mi cámara en la escena se traslade a esas posiciones que le voy pasando, ahora mi duda es estas coordenadas estan medidas en metros, entonces no se si necesito cosas de unity para trabajar este sistema de coordenadas o no se si coordeandas en UTM relacionados con unity....., toda la ayuda que me briden me será útil. saludos
#3
General (Antiguo) / ayuda con la transparencia
Febrero 25, 2016, 06:46:15 PM
Como los Edificios son hijos del GameObject (Plano), pues necesito saber como acceder a los hijos de este gameobject para poder trabajar con las caracteristicas de sus materiales, alguien q me pueda ayudar...
#4
General (Antiguo) / ayuda con la transparencia
Febrero 25, 2016, 05:28:00 PM
Hola, no tengo mucho experiencia en Unity, y necesito que me ayuden, tengo en mi escena un modelo 3d con varios edificios, entonces necesito que cuando yo voy recorriendo la escena con la camara pues vea transparente los edificios mediante un script (yo he leido que poniendole la propiedad al material Transparent/Diffuse y regulando el alpha se consigue), pero no se como hacerlo, por eso necesito de la ayuda de ustedes, cuando es un GameObject yo se como acceder a el, pero un modelo 3d no se como mediante el codigo acceder a sus materiales, mi modelo 3d se llama Plano y tiene dentro los edificios 1, 2, 3.... donde cada edificio tiene los materiales con los q yo debo trabajar para la transparencia. miren parte del codigo que he visto pero me faltan cosas para que funcione, ayudenme en este tema:  void Update () {        Renderer rend = GetComponent<Renderer>();
        for (int i = 0; i < rend.materials.Length; i++)
        {
            if (rend.materials.color.a < 1)
            {
                rend.materials.shader = Shader.Find("Transparent/Diffuse");
               
            }
            else
          
                rend.materials.shader = Shader.Find("Diffuse");
            if (rend.materials.color.a > 0.5f)
            {
                Color cor = rend.materials.color;
                cor.a -= 0.02f;
                rend.materials.color = cor;            }
            else {                if (rend.materials.color.a < 1)
                {
                    Color cor = rend.materials.color;
                    cor.a += 0.02f;
                    rend.materials.color = cor;                }
            }            
        }
#5
Hola necesito mediante codigo poner transparente una imagen que le pongo a una esfera por dentro, y con la camara dentro de la esfera la visualizo, pero quiero q al apretar la tecla V pues esa imagen se ponga transparente, he leido q con el alpha llevado a 0 se puede lograr la transparencia, pero como soy nueva no me sale, ahi les pongo un ejemplo del coido q uso.         esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        esfera.transform.position = new Vector3(9, -7, 0.08F);
        esfera.AddComponent<ReverseNormals>();
        string phrase = "ascii_panoramas000000";
        rend = esfera.GetComponent<Renderer>();
        rend.material.mainTexture = Resources.Load("texturas/" + phrase) as Texture;        cam1.SetActive(true);
        cam1.transform.position = new Vector3(9, -7, 0.08F);
        cam1.AddComponent<rotar>(); Pero no se como ahora esa textura ponerla trasparente ahi pongo algo q uso pero no me funciona, por eso pido q me ayuden....void Update () { if (Input.GetKeyDown(KeyCode.D))
        {
            //gameObject.renderer.material.color = Color32(Red, Green, Blue, Alpha);
          esfera.renderer.material.color = Color32(Red, Green, Blue, Alpha);}
}
#6
Hola, Aqui te pongo un pedazo del codigo donde pinto las esferas en mi modelo segun las posiciones que tengo guardadas en un arraylist://aqui necesito crear esferas recorreindo el arrayslist donde tengo almacenadas las posiciones
    void GenerarEsferas()
    {
        int index = 0;
        foreach (Panorama p in Registros1)
        {            if (index % 2 == 0)
            {
                GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                esfera.transform.position = new Vector3((float)p.x, 0, (float)p.z);
                esfera.AddComponent<ReverseNormals>();
                
                //Escala de los panoramas
                esfera.transform.localScale = new Vector3(0.025F, 0.025F, 0.025F);
                               //Poner textura
                String phrase = p.file_name;
                phrase = phrase.Replace(".jpg", "");
                Renderer rend = esfera.GetComponent<Renderer>();
                rend.material.mainTexture = Resources.Load("texturas/" + phrase) as Texture;
                // Debug.Log(p.file_name);            }            index = index + 1;         }
        } Yo tambien tengo una función Recorrido, que va moviendo la camara por todas las posiciones de las esferas pintadas, viendo las imagenes panoramicas a 360 grados q lleva cada esfera como textura, pero lo que necesito es ahora mediante un evento (Que seria una tecla del teclado) que la textura se haga transparente, para ver el modelo 3D de la posición donde me encuentro y hacer invisibles las demás, por eso necesito que me ayudes orientandome. Yo estuve viendo estas propiedas en el editor con una textura Alpha fron Graycal y hace trasparente la textura, pero necesito verlo mediante código para ver si algo como esto me sirve para lo que necesito.  
#7
hola, te explico mejor, yo tengo un modelo 3D donde hay una casa, dentro ubico esferas con normales invertidas y una textura(q es una imagen panoramica a 360 grados) lo cual conforman un panorama, y con una camara voy recorriendo los panoramas que se encuentran posicionados dentro de la casa, ahora yo quiero poder hacer transparente la textura del panorama donde se encuentre la camara para ver la parte del modelo 3D de la casa que pertenece a ese panorama, es decir, estoy en la cocina y veo en el panorama la imagen panoramica a 360 grados, pero si quisiera hacerla transparente y ver la cocina pero el modelo 3D que pertenece a ella, es mi duda si pueden orientarme a hacer este tipo de cosas, pues soy nueva y no tengo experiencia. 
#8
Hola necesito ayuda, estoy investigando lo de hacer transparente una textura que tengo y visualizo con la camara para que al ser transparente poder ver el modelo 3D que se encuentra en la escena y tiene similitud con la textura, alguien que me pueda ayudar. gracias
#9
General (Antiguo) / problemas con el script
Enero 14, 2016, 07:17:56 PM
Pues si es cierto, no me di cuenta a la hora de copiarlo sorry, pero gracias por la ayuda. 
#10
General (Antiguo) / problemas con el script
Enero 14, 2016, 06:26:16 PM
Como bien dices estoy empezando en este mundo de la programación y de usar Unity, y si les pido ayuda a ustedes es porque ya llevan tiempo y tiene la experiencia que yo no tengo, como bien explique al principio yo use un script para invertir normales http://wiki.unity3d.com/index.php/ReverseNormals" rel="external nofollow">ReverseNormals que me funcionaba bien y lo obtuve de esta direccion http://wiki.unity3d.com/index.php/ReverseNormals" rel="external nofollow"><http://wiki.unity3d.com/index.php/ReverseNormals>. lo que como no sabia yo usar un script desde el mismo script por eso intentaba llamar a la función InvertirNormales hecha con el mismo codigo del script que tenia anteriormente. Pero ya ire cogiendo experiencia en el tema.
#11
General (Antiguo) / problemas con el script
Enero 14, 2016, 06:15:40 PM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34911" data-ipsquote-contentcommentid="126050">Si ... ya se lo que significa invertir las normales ^.^ es el codigo (mas bien las lineas que cite) lo que me mato, y no la funcion que hace o pretende hacerEn cualquier caso, si aseguras que el script ReverseNormals funciona perfectamente no entiendo el problema ... para que quieres hacer otra funcion en otro script que hace exactamente lo mismo ? Solo necesitas 2 lineas :GameObject esfera = GameObject.CreatePrimitive (PrimitiveType.Sphere);esfera.AddComponent<ReverseNormals> ();Con esas dos lineas ya tienes las normales invertidas; en realidad lo unico que hace es añadir el script ReverseNormals a la nueva esfera y como este ya tienes comprobado que funciona ... pues trabajo hecho ;)
#12
General (Antiguo) / problemas con el script
Enero 14, 2016, 04:22:20 PM
Pues como bien explique anteriormente, el codigo de la clase public class ReverseNormals : MonoBehaviour, funcionaba bien como un script ReverseNormals.cs y asignarlo a una esfera en la escena, pero ahora yo quiero crear por codigo la esfera y mediante una funcion invertir sus normales pues ahi es donde tengo el problema, por eso pido ayuda. Esto sirve para cuando le pones textura a una esfera y le inviertes sus normales puedes introducir una camara dentro y ver la textura dentro de la esfera y no por fuera. 
#13
General (Antiguo) / problemas con el script
Enero 14, 2016, 12:28:19 PM
Hola, como soy nueva en lo de unity voy poco a poco haciendo mis cosas, primero en un script tenia esto:

using UnityEngine;

using System.Collections;

 

[RequireComponent(typeof(MeshFilter))]

public class ReverseNormals : MonoBehaviour

{

 

    void Start()

    {

        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);

            }

        }

    }

}

 

 

Y se lo asignaba a un gameobject de tipo esfera que yo tenia en la escena y funcionaba super bien. Pero ahora necesito desde un script crear la esfera y que se inviertan sus normales y lo he tratado de hacer asi y no me funciona lo de la funcion InvertirNormales miren ahi les pongo el codigo a ver que puedo hacer para que me funciones todo desde el escript:

 

                GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);

               esfera.transform.position = new Vector3((float) p.x, 0, (float) p.z);

               Renderer rend = esfera.GetComponent<Renderer>();

              rend.material.mainTexture = Resources.Load("texturas/"+ p.file_name) as Texture;

                        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);

            }

        }

    }

}

#14
vale gracias, estudiare los ejemplos
#15
Si pero ponme un ejemplo para hacerlo mediante codigo en el script por c#, mientras voy creando la esfera le pongo una posicion y debo entonces reducir su escala pero por codigo es q necesito ese ejemplo.