private GameObject SpawnObject(GameObject pObjectOriginal, Vector3 vecPosition, Quaternion rotRotation) { if (pObjectOriginal == null) { Debug.LogError(name + " SpawnObject Error - pObjectOriginal == null", this); return(null); } GameObject pObjectCopy = null; #if UNITY_EDITOR if (Application.isPlaying == false) { pObjectCopy = PrefabUtility.InstantiatePrefab(pObjectOriginal) as GameObject; if (pObjectCopy == null) { pObjectCopy = GameObject.Instantiate(pObjectOriginal); pObjectCopy.name = pObjectOriginal.name; } } #endif if (pObjectCopy == null) { pObjectCopy = CManagerPooling_Component <Transform> .instance.DoPop(pObjectOriginal.transform).gameObject; CSpawnedObject pSpawnedObject = pObjectCopy.GetComponent <CSpawnedObject>(); if (pSpawnedObject == null) { pSpawnedObject = pObjectCopy.AddComponent <CSpawnedObject>(); } pSpawnedObject.DoInit(this); } if (pObjectCopy == null) { return(null); } if (gameObject.activeSelf) { pObjectCopy.transform.SetParent(transform); pObjectCopy.transform.position = vecPosition; pObjectCopy.transform.rotation = rotRotation; pObjectCopy.SetActive(true); } p_listSpawnedObject.Add(pObjectCopy); OnSpawnObject(pObjectCopy); return(pObjectCopy); }
public void Event_OnReturnSpawnObject(CSpawnedObject pSpawnedObject) { p_listSpawnedObject.Remove(pSpawnedObject.gameObject); }