Question by
MrCrumbl3d · Apr 16, 2017 at 03:51 AM ·
oncollisionentersetactiveoncollisionstay
How to hide and show ui buttons.
Hello.. Im trying to make buttons hide and show when collisions i use SetActive but doesnt even work why?? Here's my script..
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class rayCastCSHARP1 : MonoBehaviour { public GameObject _parent; public GameObject _testObj; public GameObject _parent1; public Button btnPickUp; public Button btnPlace; public Canvas myCanvas;
void Start () {
btnPickUp.gameObject.SetActive(false);
}
void OnGUI ()
{
if(btnPickUp.SetActive(true))
{
pickUpDown();
}
}
void OnCollisionStay (Collision col) {
if(col.gameObject.tag == "pickup") {
btnPickUp.SetActive(true);
}
}
void OnCollisionExit (Collision col) {
btnPickUp.SetActive(false);
}
void pickUpDown () {
_testObj.transform.parent = _parent.transform;
}
void placeDown () {
_testObj.transform.parent = _parent1.transform;
}
}
Comment
Answer by PizzaPie · Apr 16, 2017 at 11:01 AM
You need to refer to the GameObject, the button component is attached to, so you use :
btnPickUp.gameObject.SetActive(true)
As you do in the Start() , also there is no point on having the
if(btnPickUp.SetActive(true))
it will be always false as SetActive has void return type. Cheers.
Out of curiosity does that even get compiled?
Your answer
![](https://koobas.hobune.stream/wayback/20220612115923im_/https://answers.unity.com/themes/thub/images/avi.jpg)