/// <summary> /// 创建子弹物体 /// </summary> /// <param name="startPos"></param> /// <returns></returns> private static EnemyBullet CreateBulletObj(Vector3 startPos) { EnemyBullet bullet = null; if (s_reusePool.Count > 0) { bullet = s_reusePool.Dequeue(); } else { var prefab = ResourceMgr.instance.LoadRes <GameObject>("Bullet/enemy_bullet"); var obj = Object.Instantiate(prefab); obj.transform.SetParent(s_enemyBulletRoot, false); bullet = obj.GetComponent <EnemyBullet>(); bullet.backToPoolAction = () => { s_reusePool.Enqueue(bullet); }; } bullet.speed = 5f; bullet.SetStartPos(startPos); bullet.SetAngles(Vector3.zero); bullet.ActiveSelf(true); return(bullet); }