//让鱼游起来 IEnumerator CreatStraightFishStram(Transform fishCreatPos, int fishIndex, int creatNum, float speed, float straightAngle) { for (int i = 0; i < creatNum; i++) { //生成鱼 GameObject go = MainPoolManager.Instance.GetGameObject(PoolType.FISH, fishIndex); go.transform.position = fishCreatPos.position; go.transform.rotation = fishCreatPos.rotation; //设置倾斜 go.transform.Rotate(new Vector3(0, 0, straightAngle)); //设置order go.GetComponent <SpriteRenderer>().sortingOrder = BgOrder + fishIndex * 10 + i; //挂载属性脚本(没有就挂载且设置数据,否则只设置数据) AutoMove_EF moveef = go.GetComponent <AutoMove_EF>(); if (go.GetComponent <AutoMove_EF>() == null) { moveef = go.AddComponent <AutoMove_EF>(); AutoTriggerDestroy_EF colDesEf = go.AddComponent <AutoTriggerDestroy_EF>(); colDesEf.checkTag = new string[] { "Wall" }; } if (moveef.enabled == false) { moveef.enabled = true; } moveef.speed = speed; yield return(new WaitForSeconds(CreatFishTime)); } }
//生成子弹 private void CreatBullet() { GunAttribute gunAtr = guns[currentGunIndex]; //GameObject bulletGo = Instantiate(bulletPre[bullectIndex], gunAtr.firePosTran.position, gunAtr.firePosTran.rotation); GameObject bulletGo = MainPoolManager.Instance.GetGameObject(PoolType.BULLET, bullectIndex); bulletGo.transform.position = gunAtr.firePosTran.position; bulletGo.transform.rotation = gunAtr.firePosTran.rotation; BullectArrtibute bullectAtr = bulletGo.GetComponent <BullectArrtibute>(); //移动效果 AutoMove_EF moveef = bulletGo.GetComponent <AutoMove_EF>(); if (moveef == null) { moveef = bulletGo.AddComponent <AutoMove_EF>(); } moveef.dir = Vector3.up; moveef.speed = bullectAtr.moveSpeed; //网的效果 AddWeb_EF webef = bulletGo.GetComponent <AddWeb_EF>(); if (webef == null) { webef = bulletGo.AddComponent <AddWeb_EF>(); } webef.gunIndex = currentGunIndex; webef.lvInWeb = gunAtr.lvInGun; //获取这种类型枪威力的等级 webef.webTotaLv = GunToBullet; webef.webWaitTime = bullectAtr.webWaitTime; //设置网的停留时间 webef.damage = bullectAtr.damage; webef.SetColor(); //碰撞鱼销毁效果 AutoTriggerDestroy_EF trigEF = bulletGo.GetComponent <AutoTriggerDestroy_EF>(); if (trigEF == null) { trigEF = bulletGo.AddComponent <AutoTriggerDestroy_EF>(); trigEF.checkTag = new string[] { "Fish", "Wall" }; } }