Jump to content
Unity Insider Forum

if CrossFadeAlpha == 0


Ich

Recommended Posts

HalloWelt.GetComponent<Image>().CrossFadeAlpha(0, 1.5f, false);

Ich möchte sagen, wenn CrossFadeAlpha gleich 0 ist, dann soll Debug.log ("Bild ist nicht mehr sichtbar") in der Console kommen, wenn ihr versteht was ist meine.

Ist das möglich?

Danke im voraus :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok danke. Ich habe jetzt gesagt wenn GetAlpha = 0 ist das sich das Gamobject deaktiviert und wenn GetAlpha > 0 ist das es sich wieder Aktiviert.

Das problem jetzt aber ist, dass wenn das Gamobject sich De- oder Aktiviert, wird GetAlpha = 1...

ist das normal, wenn ja ist es möglich das wenn es  De- und wieder Aktiviert wird die Zahlen behält.

Link zu diesem Kommentar
Auf anderen Seiten teilen

void Update(){ 
Void_Search_Anim();
Void_Search_A();
}  

 void Void_Search_Anim() {
        if (Suche == true) {
            Tex_Search.GetComponent<Text>().CrossFadeAlpha(1, 0.3f, true);
            Tex_Search_Out.GetComponent<Text>().CrossFadeAlpha(1, 0.3f, true);

        }
        else if (Suche == false) {
            Tex_Search.GetComponent<Text>().CrossFadeAlpha(0, 0.3f, true);
            Tex_Search_Out.GetComponent<Text>().CrossFadeAlpha(0, 0.3f, true);
        }
    }

    void Void_Search_A() {
        if (cr_Tex_Search[0].GetAlpha() == 0) {
            Debug.Log("False: " + cr_Tex_Search[0].GetAlpha());
            Tex_Search.SetActive(false);
            Tex_Search_Out.SetActive(false);
        }
        else if (cr_Tex_Search[0].GetAlpha() > 0) {
            Debug.Log("True: " + cr_Tex_Search[0].GetAlpha());
            Tex_Search.SetActive(true);
            Tex_Search_Out.SetActive(true);
        }
    }

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke es ist normal. Du kannst aber einen beliebigen Alphawert setzen, wenn das Objekt aktiviert wird.

Tex_Search.SetActive(true);
Tex_Search.SetAlpha(0.01f);

Du solltest bei deinem Code deine Images und den Canvasrenderer besser voneinander trennen. Wenn beide Images auf dem gleichen Canvas liegen, musst du CrossFadeAlpha() nur 1x aufrufen. Ich bin mir auch nicht sicher, ob CrossFadeAlpha() korrekt arbeitet, wenn du das Objekt "Tex_Search" (an dem dein Canvas hängt!?) deaktivierst, normalerweise sollte man das nicht tun.

Hier noch ein Skript welches du an ein Image hängen kannst und welches einen bestimmten Alphawert setzt sobald es aktiviert wird (man könnte es auch direkt unter das Canvas hängen und den Imagepart weglassen).

Allerdings wirkt sich das wiederum auf das gesamte Canvas aus (dem das Image untergeordnet ist) und nicht auf das Image! Das gilt auch für die CrossFadeAlpha-Funktion, die wirkt sich immer auf das gesamte Canvas aus.

public float startAlpha = 0f;
private Image m_Image;
private CanvasRenderer m_CanvasRenderer;

public class SetAlphaImage : MonoBehaviour {
    void Start() {
       m_Image = GetComponent<Image>();
       m_CanvasRenderer = m_Image.GetComponent<CanvasRenderer>();
       m_CanvasRenderer.SetAlpha(startAlpha);
    }

    void OnEnable() {
       m_CanvasRenderer.SetAlpha(startAlpha);
    }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...