Jump to content
UnitySpain

zHeMaa

Registrados
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

2 Neutral

About zHeMaa

  • Rank
    Recién Llegado

Profile Information

  • Especialidad
    Diseñador

Recent Profile Visitors

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

  1. Al final lo solucione.. después de muchísimos días, y horas y horas invertidas.. me fue mas fácil de lo que creía (al menos en el tema código pero realmente me fue muy difícil jajajaja. Pero lo implemente de una manera fácil, y simple) El objeto es negro por completo de primeras, hasta ahí bien. Pero cuando le disparas se transforma a blanco con este código (muy simple). gameObject.GetComponent<Renderer>().material.color = Color.white; y seguidamente hace el siguiente código tal y como tenia y se transforma a negro (recordemos que es su color base) otra vez. IEnumerator ColorChange() { while (true) { Color newColor = colors[1]; float transitionRate = 0; while (transitionRate < 100000) { rend.material.SetColor("_Color", Color.Lerp(rend.material.color, newColor, Time.deltaTime * transitionRate)); transitionRate += Time.deltaTime / transitionTime; yield return null; } yield return null; } } de esta manera cuando disparas al enemigo se transforma en blanco de golpe y en cosa de medio segundo se vuelve negro (vuelve a su color base) otra vez, que es lo que yo quería para darle un toque de hitmarker, y como todo ocurre en milésimas el ojo no aprecia que el objeto se ha puesto blanco de golpe y negro otra vez progresivamente. Así que me ha quedado de 10, tal y como yo quería. Gracias por la ayuda! nos vemos pronto!
  2. Buenas, tengo un código que hace que cuando dispare al enemigo se ponga de color blanco progresivamente, pero yo realmente lo que quiero es que que el enemigo se ponga blanco y a la vez se vuelva negro (como su color base) pero de igual manera, progresivamente. Este efecto lo quiero para hacer un estilo de efecto de hitmarker y de momento tengo este código (he limpiado otros códigos para que se vea mas limpio todo). Este código hace eso.. le das a un enemigo, se pone blanco progresivo.. hasta ahí bien, pero se queda blanco!! y eso, me gustaría que una vez se pusiera blanco saltase otro código que sin tiempo de espera se empiece a poner negro.. vamos que en cosa de 1 segundo (por ejemplo) haya pasado de blanco a negro recordando que el negro es el color base. Llevo muchas horas probando códigos y no consigo nada de nada.. Gracias de antemano! using System.Collections; using System.Collections.Generic; using UnityEngine; public class BlockController : MonoBehaviour { public Renderer rend; Color[] colors; float transitionTime = 0.01f; float duration = 0.5f; void Start() { rend = GetComponent<Renderer>(); currentHealth = health; colors = new Color[3]; colors[0] = Color.black; colors[1] = Color.white; colors[2] = Color.red; } IEnumerator ColorChange() { while (true) { Color newColor = colors[1]; float transitionRate = 0; while (transitionRate < 100000) { rend.material.SetColor("_Color", Color.Lerp(rend.material.color, newColor, Time.deltaTime * transitionRate)); transitionRate += Time.deltaTime / transitionTime; yield return null; } yield return null; } } void Update() { } public void HurtEnemy(int damage) { StartCoroutine(ColorChange()); } }
  3. Perfecto!! lo he probado y funciona de 10, he substituido el bloodPartics por el nombre que tiene mi sistema de partículas lógicamente y luego en "bloodPartics.transform.Rotate(0f, -90f, 0f);" en vez de poner el -90 en el segundo es en el primero, vamos.. "bloodPartics.transform.Rotate(-90f, 0f, 0f);" y listo. Lo pongo por si a otro le pasa lo mismo.
  4. Buenas, tengo un enemigo que cuando muere suelta partículas, hasta ahí bien. El problema es que cuando muere las partículas siempre salen desde sus pies y en angulo de rotación x = 0. Mi idea, o objetivo mejor dicho es hacer que cuando muera ese objeto las partículas se creen en su cabeza (un objeto que yo llamo "EnemyHead" dentro del enemigo el cual esta situado en su cabeza), y en angulo de rotación = 270 (que hace que la sangre, o partículas.. salgan en dirección al cielo, o hacia arriba, en vez de para el lado..). Mi actual código de cuando muere es este: Bueno, eso es todo, a ver que solución hay.. Gracias!
  5. Me presento, soy nuevo en unity pero no en la programación de videojuegos. Por el momento mi principal objetivo es aprender un poco sobre este mundillo.
×
×
  • Create New...