d d*_*doe 0 c# unity-game-engine
我有一个简单的代码,当玩家输入一个触发器时显示一个精灵:
ps:精灵不在GUI上
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
ItemCard.SetActive(true);
}
else
{
ItemCard.SetActive(false);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我SetActive(false)没有工作,精灵仍在展示.我在伪造什么?
我想在这里走出去猜猜,你试图做的是当你的触发器显示一张牌并让它在你离开时消失?
有一种方法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);
}
}
Run Code Online (Sandbox Code Playgroud)
我说这个的原因是因为你的方法只会将对象设置为非活动状态,如果进入它的对手不是玩家.我可能是错的,也许这就是你想要的东西,但如果是这样的话,别的就不需要了.祝好运!lemme知道这是否适合你!
用你原来的方法你基本上说:
如果玩家走进演出卡,除了玩家之外的任何东西都会碰到隐藏卡
所以你需要别的东西与它碰撞才能让它消失