Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Duda de novato. Error de concepto o cambio de versión.

Iniciado por Tizon, Agosto 10, 2015, 07:51:43 PM

Tema anterior - Siguiente tema
Hola nuevamente a todos. Me estoy empapando la Api de Unity, pero a la hora de intentar dar mis pasitos me tropiezo con algunos problemas que me hacen parecer tonto y de los que no consigo salirme. En este caso es algo tan chorra como cambiar de color por Código.Bien empiezo por esta parte, que es la que me funciona.     GameObject prueba;    // Use this for initialization
    void Start () {
        prueba = GameObject.CreatePrimitive (PrimitiveType.Sphere);    } Ahora bien, tanto revisando la Api como post por aquí como la propia documentación de Unity, me sugieren hacerlo de la siguiente forma;renderer.material.color = Color.green;Pero me da mensaje de error y no compila.Bien, no nos pongamos nerviosos, pienso. Y pruebo con this.renderer.material.color. Tampoco. Bueno, pues GameObject.renderer.material.color. Tampoco. Pues prueba.GetComponent<Sphere>().renderer.material.color. Nás. prueba.GetComponent<SphereCollider>().renderer.material.color. Empezo a desesperar... Y machacando veo que todo el material que consulto está referido a la versión 4, o bien no indica versión, pero por la fecha diría que es 4 también. Así que pregunto, estoy más perdido que un bacalaó en el Sahara o es que la dependencia del renderer ha cambiado con la versión? Si podéis aportar algo de luz, os estaré muy agradecido.

Agosto 10, 2015, 07:58:40 PM #1 Ultima modificación: Agosto 10, 2015, 08:00:38 PM por iRobb
this.GameObject.GetComponent<Renderer>().material.color = ...


SI funciona, ponme un like que quedo más guapo 


[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15940" data-ipsquote-contentcommentid="101429">SI funciona, ponme un like que quedo más guapo [/quote]Perdón por el retraso, He desinstalado y reinstalado antes de contestar por si fuera algún problema con la instalación o algo...No, no me lo admite. Me marca material y color en rojo y me saca el siguiente mensaje:Assets/Scripts/Prueba.cs(12,60): error CS1061: Type `UnityEngine.Renderer[]' does not contain a definition for `Material' and no extension method `Material' of type `UnityEngine.Renderer[]' could be found (are you missing a using directive or an assembly reference?)


También lo he probado... Y me da el mismo error. Es como si no lo reconociera...


Lo he probado con ambos por si acaso... Perdón. Es que antes de preguntar he trasteado de todo, Cambiado, probado con GameObject, This, el nombre de la variable...No se, he desinstalado y estoy volviendo a instalar, porqué también me da errores del compilador, a ver...Gracias por las respuestas... Os sigo contando...

Muy Buenas:

Tu error como bien dices es de novato ( no por ello malo xD ) y las otras opciones que te han dado no te han funcionado por que el this.gameObject solo funciona si ese script estaría en el objeto instanciado.... siguiendo tu código seria así. 
prueba = GameObject.CreatePrimitive (PrimitiveType.Sphere);
prueba.GetComponent<Renderer>().material.color = Color.red;
Espero que te sirva ^^ cualquier otra duda informa 

PD: Esta probado que funciona en la ultima version de unity Un saludo
  

el problema es k el this estas accediendo al script y con .gameobject al objeto k tiene ese script, y realmente no tiene ninguno...

Si!!!Al final si. Perfecto. Muchas gracias a todos.Igualmente, alguien sabe como realizar una instalación limpia? Tengo un montón de mierda de los tutoriales, que hace que me salten errores nada más entrar al MonoDevelop y otros accesorios... Y al desistalar y volver a instalar veo que continúo teniendo todo igual. Si alguien sabe si hay que borrar entradas de registro o algo quedaría muy agradecido...Nuevamente muchas gracias a todos, es fantástica una comunidad así.

Etiquetas: