void SpawnIcon() { if (!searching && IconPool.PoolAvailable()) { StartCoroutine(FindSpawnPoint()); } if (pickedSpawnPosition != Vector3.zero && IconPool.PoolAvailable()) { GameObject icon = IconPool.GetAvailableObject(); icon.GetComponent <InteractableIcon>().Reset(); icon.transform.position = pickedSpawnPosition; IconSnapToGrid iconSnap = icon.GetComponent <IconSnapToGrid>(); iconSnap.Init(); if (!iconSnap.TrySnapIcon()) { IconPool.ReturnGameObjectToPool(iconSnap.gameObject); } icon = null; StopAllCoroutines(); searching = false; pickedSpawnPosition = Vector3.zero; } }