private void Start() { if (generateBlocker) { var go = new GameObject("Blocker"); go.transform.SetParent(transform); go.transform.SetAsFirstSibling(); RectTransform rect = go.AddComponent <RectTransform>(); rect.sizeDelta = new Vector2(2000, 2000); rect.anchoredPosition = Vector2.zero; ; go.transform.localScale = Vector3.one; go.AddComponent <Image>().color = new Color(255, 255, 255, 0); go.AddComponent <Button>().onClick.AddListener(HidePanel); thisCanvas = GetComponent <Canvas>(); if (!thisCanvas) { thisCanvas = gameObject.AddComponent <Canvas>(); gameObject.AddComponent <GraphicRaycaster>(); } blocker = go; go.SetActive(false); filterButton = GetComponentInChildren <ChangableButton>(); } }