[RESOLU] Programation d'un timer conditionnel sur effet graphique (C#)

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: Programation d'un timer conditionnel sur effet graphique (C#)

Message par Greg » 04 Août 2017 00:08

coucou,
j'ai pas testé mais ça doit être ça :

Code : Tout sélectionner

    void Update()
    {
        if (temps > 0 && temps != 0)
            temps--;

        if (Input.GetKeyDown(KeyCode.F) && temps <= 0)
            temps = 100;

        if (altColor.a < 1)
            altColor.a += 0.005f;
        else if (altColor.a > 0 && temps == 0)
            altColor.a -= 0.005f;

        rend.material.color = altColor;
        Debug.Log(rend.material.color.a);
    }
:merci:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Avatar de l’utilisateur
Nemo67
Messages : 35
Inscription : 29 Juil 2017 16:45
Localisation : Alsace

Re: Programation d'un timer conditionnel sur effet graphique (C#)

Message par Nemo67 » 04 Août 2017 20:23

Merci Greg mais ça ne fonctionne pas. :snif:
Le fade in se fait immédiatement sans qu'on appuie sur la touche "F" et ça reste comme ça sans jamais de fade out.
La valeur temps est bien gérée mais l'alpha fait n'importe quoi...

Voici comment j'ai implémenté ton code...

Code : Tout sélectionner

using UnityEngine;
using System;
using System.Collections;

public class color2 : MonoBehaviour
{
    public Color altColor = Color.black;
    public Renderer rend;
    public int temps;

    void Example()
    {
       
        altColor.r = 0.33f;
        altColor.g = 0.75f;
        altColor.b = 1f;
        altColor.a = 0f;

        temps = 0;
    }

    void Start()
    {
        Example();
        rend = GetComponent<Renderer>();
        rend.material.color = altColor;
    }

    // void Update()
    // {
    //   if (Input.GetKeyDown(KeyCode.F) && temps == 0)
    // {
    //   temps = 500;
    //  rend.material.color = altColor;
    //}

    //if (altColor.a <= 1)
    //  altColor.a += 0.005f;
    // rend.material.color = altColor;


    //    if (temps > 0)
    //{
    //      temps -= 1;
    //}
    //else if (temps == 0 && altColor.a > 0)
    // {
    //  altColor.a = 0f;
    //altColor.a -= 0.005f;

    //rend.material.color = altColor;
    //}

    //Debug.Log(altColor.a);
    //}
    //}

    void Update()
    {
        if (temps > 0 && temps != 0)
            temps--;

        if (Input.GetKeyDown(KeyCode.F) && temps <= 0)
            temps = 100;

        if (altColor.a < 1)
            altColor.a += 0.005f;
        else if (altColor.a > 0 && temps == 0)
            altColor.a -= 0.005f;

        rend.material.color = altColor;
        Debug.Log(rend.material.color.a);
    }

}

Avatar de l’utilisateur
Nemo67
Messages : 35
Inscription : 29 Juil 2017 16:45
Localisation : Alsace

Re: Programation d'un timer conditionnel sur effet graphique (C#)

Message par Nemo67 » 04 Août 2017 20:37

Je crois que j'ai trouvé il manquait qq chose...

Code : Tout sélectionner

   void Update()
    {
        if (temps > 0 && temps != 0)
            temps--;

        if (Input.GetKeyDown(KeyCode.F) && temps <= 0)
            temps = 500;

        if (altColor.a < 1 && temps !=0)
            altColor.a += 0.005f;
        else if (altColor.a > 0 && temps == 0)
            altColor.a -= 0.005f;

        rend.material.color = altColor;
        Debug.Log(rend.material.color.a);
        Debug.Log(temps);
    }

}

Répondre

Revenir vers « (C#) CSharp »