1:
Button button = anygameobject.GetComponent<Button>();
- это получение ссылки на кнопку из GameObject.
Button bt = new Button;
- это создание новой кнопки. Не работает, так как у вас неправильный вызов конструктора, вот так верно:
Button bt = new Button();
2: Показывать/Скрывать объекты можно через их меш или спрайт
anygameobject.GetComponent<MeshRenderer/SpriteRenderer>().SetActive(false)
, а если вам нужно скрыть объект и его наследников, то нужно сначала запомнить ссылку на него на объекте, который скрываться не будет, допустим, на камере и дальше выключить его так:
anygameobject.SetActive(false);
3: Я не совсем понял, о каких переменных речь.