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ú

Temas - zHeMaa

#1
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());
    }
}

 
 
#2
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:
 



   
              if (CurrentHealth <= 0) 

              {

                  Instantiate (Blood, transform.position, Quaternion.identity);

                  Destroy (gameObject);

              }

          }
   

[/quote]
 
Bueno, eso es todo, a ver que solución hay.. Gracias!
#3
General (Antiguo) / Me presento
Octubre 11, 2017, 01:37:42 AM
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.