private void Start() { Breakable[] breakables = FindObjectsOfType <Breakable>(); m_Arrows = new Arrow[breakables.Length]; for (int i = 0; i < breakables.Length; i++) { Breakable b = breakables[i]; Arrow arrow = new Arrow(); if (b.IsCritical()) { arrow.arrow = Instantiate(m_BigArrowPrefab, transform); } else { arrow.arrow = Instantiate(m_SmallArrowPrefab, transform); } arrow.arrowImage = arrow.arrow.GetComponent <Image>(); arrow.target = b.gameObject; b.m_OnBreak.AddListener(() => { arrow.arrow.SetActive(true); }); b.m_OnFix.AddListener(() => { arrow.arrow.SetActive(false); }); arrow.arrow.SetActive(false); m_Arrows[i] = arrow; } }