示例#1
0
        //让鱼游起来
        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));
            }
        }
示例#2
0
        //生成子弹
        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" };
            }
        }