我需要一个代码来使对象在进入触发对象时出现,并在退出触发对象时消失。
GameObject GhostApparition;
// Use this for initialization
void OnTriggerEnter (Collider other)
{
if (other.CompareTag("Player")) ;
{
//????
}
}
我希望对象在输入触发对象时出现,而在退出对象时消失。实际的网格也应该消失。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用以下方式操纵游戏对象的状态
gameObject.SetActive(true);
gameObject.SetActive(false);
您只需要在TriggerEnter和TriggerExit中调用它即可。我不知道您是否要使“ ghostapparition”处于非活动状态,但是它是:
GhostApparition.SetActive(true);
GhostApparition.SetActive(false);
答案 2 :(得分:0)
要解决此问题,只需执行以下操作:
GameObject GhostApparition;
// Use this for initialization
void OnTriggerEnter (Collider other)
{
if (other.tag == "Player") ;
{
GhostApparition.SetActive(true);
}
}
void OnTriggerExit (Collider other)
{
if (other.tag == "Player") ;
{
GhostApparition.SetActive(false);
}
}
但是在使用包含行为的GameObjects进行操作时要注意。如果您停用它,然后再次激活,它将再次运行void重新启动并重置变量。有时候你不想要它。
因此,我建议在这种情况下,仅停用GameObject MeshRenderer组件。
答案 3 :(得分:0)
….monobehavior:
public GameObject object;
void Start()
{
object.SetActive(false);
object2.SetActive(false);
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
{
object.SetActive(true);
object2.SetActive(false);
}
}
}
/// void OnTriggerStay and 'object2' are extras (for if u want a keycode to show an additional text)
void OnTriggerStay(Collider other)
{
if (object.activeInHierarchy && Input.GetKeyUp(KeyCode.E))
{
object.SetActive(false);
object2.SetActive(true);
}
}
void OnTriggerExit(Collider other)
{
object.SetActive(false);
object2.SetActive(false);
}
...