Jump to content
Unity Insider Forum
Sign in to follow this  
Ich

if CrossFadeAlpha == 0

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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);
        }
    }

 

Share this post


Link to post
Share on other sites

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);
    }
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...