Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ToggleActiveGameObject : MonoBehaviour
- {
- [SerializeField] private GameObject _targetGameObject;
- private Button _toggleButton;
- private static UnityEvent _otherGameObjectActivated = new UnityEvent();
- private static bool _anyActiveGameObject = false;
- private void Awake()
- {
- _toggleButton = GetComponent<Button>();
- _toggleButton.onClick.AddListener(Toggle);
- _otherGameObjectActivated.AddListener(DisableOtherGameObjects);
- }
- private void Toggle()
- {
- bool myState = _targetGameObject.activeSelf;
- if (_anyActiveGameObject)
- {
- _otherGameObjectActivated.Invoke();
- }
- _targetGameObject.SetActive(!myState);
- if (_targetGameObject.activeSelf)
- {
- _anyActiveGameObject = true;
- }
- }
- private void DisableOtherGameObjects()
- {
- _targetGameObject.SetActive(false);
- _anyActiveGameObject = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement