как отключить спрайт с помощью SetActive (false) - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть простой код, который показывает спрайт, когда игрок вводит триггер:

ps: спрайт не в графическом интерфейсе

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

, но мой SetActive(false) не работали спрайт все еще показывался на дисплее.Я что-то подделываю?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

я собираюсь выйти здесь на конечность и догадаться, что вы пытаетесь показать карту, когда вы находитесь в триггере, и заставить ее уйти, когда вы уходите?

есть методпозвонил 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);
    }

}

причина, по которой я это говорю, в том, что ваш метод установит неактивный объект, только если входящий в него коллайдер НЕ является игроком.Я могу ошибаться, может быть, это то, что вы хотите, но если это так, остальное не нужно.удачи!Дай мне знать, если это работает для тебя!

с твоим оригинальным методом, ты в основном говоришь:

если игрок входит в шоу-карту, если что-либо, кроме игрока, сталкивается, скрывает карту

так что вам нужно что-то еще, чтобы столкнуться с ним, чтобы оно исчезло

0 голосов
/ 21 сентября 2018

Что такое ItemCard?У меня работает следующее:

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

    void Start()
    {
            dummy.SetActive(false);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...