/// <summary> /// Initializes a pool of objects /// </summary> /// <param name="text">damage type</param> private void Initialize(TextDamageType text) { m_dTextTypes.Add(text.keyType, new List <UITextDamage>( )); List <UITextDamage> container = m_dTextTypes[text.keyType]; for (int i = 0; i < text.poolCount; i++) { container.Add(AllocateOneInstance(text)); } // If original prefab is in the scene, disable if (text.prefab.gameObject.scene == UnityEngine.SceneManagement.SceneManager.GetActiveScene( )) { text.prefab.gameObject.SetActive(false); } }
/// <summary> /// Instantiates one text object of the desired type /// </summary> /// <param name="text">damage type</param> /// <returns></returns> private UITextDamage AllocateOneInstance(TextDamageType text) { if (text == null) { return(null); } GameObject g = Instantiate(text.prefab.gameObject) as GameObject; g.transform.SetParent(transform); g.transform.localPosition = Vector3.zero; g.transform.localRotation = Quaternion.identity; UITextDamage td = g.GetComponent <UITextDamage>( ); td.Canvas = this.canvas; td.Cam = theCamera; td.followsTarget = followsTarget; g.SetActive(false); return(td); }