public Object GetInstance(Object prefab) { List <IResourcePullElement> prefabPull; if (Pull.TryGetValue(prefab, out prefabPull) == false) { prefabPull = new List <IResourcePullElement>(); Pull.Add(prefab, prefabPull); } IResourcePullElement instance = prefabPull.Find((element => element.IsFree == true)); if (instance == null) { instance = (Instantiate(prefab) as GameObject).GetComponent <IResourcePullElement>(); prefabPull.Add(instance); } instance.Restrain(); return(instance.AttachedObject); }
public void ReleaseInstance(IResourcePullElement element) { element.AttachedObject.SetActive(false); element.AttachedObject.transform.SetParent(transform); }