簡體   English   中英

如何使用SetActive(false)禁用Sprite

[英]how to disable a sprite with SetActive(false)

我有一個簡單的代碼,當玩家輸入觸發器時會顯示一個精靈:

ps:精靈不在GUI上

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.tag == "Player")
    {
        ItemCard.SetActive(true);
    }
    else
    {
        ItemCard.SetActive(false);
    }
}

但是我的SetActive(false)沒有起作用,並且精靈仍然顯示在屏幕上。 我忘記了什么?

即時通訊會在這里四處走動,然后猜測,您要做的是在觸發時顯示一張卡片,並在離開時使其消失?

OnTriggerExit有一個稱為OnTriggerExit的方法。 嘗試這個:

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.tag == "Player")
    {
        ItemCard.SetActive(true);
    }

}

void OnTriggerExit(Collider other)
{
    if (other.gameObject.tag == "Player")
    {       

        ItemCard.SetActive(false);
    }

}

我之所以這樣說,是因為如果進入的對撞機不是玩家,那么您的方法只會將對象設置為非活動狀態。 我可能是錯的,也許那就是您想要的,但是如果是這樣,則不需要其他。 祝好運! 萊姆知道這是否適合您!

使用您的原始方法,您基本上是在說:

如果玩家進入表演卡,則除了玩家以外的其他任何碰撞

所以您需要其他碰撞來使其消失

什么是ItemCard? 以下對我有用:

public class TestClass : MonoBehaviour
{
    public GameObject dummy; // this is a sprite

    void Start()
    {
            dummy.SetActive(false);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM