コード例 #1
0
ファイル: ExBullet.cs プロジェクト: WiseDrely/2D_Demo
    void SetMultiple2(GameObject ab)
    {
        Vector3 BulletRota = ab.transform.eulerAngles;

        ab.transform.Rotate(new Vector3(0f, 0f, -angle));

        GameObject bullet = BP.GetPooledObject(NextBullet);//从对象池实例化子弹

        if (bullet != null)
        {
            bullet.transform.position    = ab.transform.position;
            bullet.transform.eulerAngles = BulletRota;
            bullet.transform.Rotate(new Vector3(0f, 0f, angle));
            bullet.GetComponent <Bullet>().Damage = ab.GetComponent <Bullet>().Damage;
            bullet.SetActive(true);
        }
    }
コード例 #2
0
 //changes how the tower shoots, by storing multiple muzzle poitns and shooting in all of those points, also aims by changing for range
 public override void Shoot()
 {
     Collider[] targets = Physics.OverlapSphere(this.transform.position, Range, EnemyLayer);
     if (targets.Length > 0)
     {
         TimeElapsed += Time.deltaTime;
         if (TimeElapsed >= RateOfFire)
         {
             TimeElapsed = 0;
             if (BulletPool != null)
             {
                 for (int i = 0; i < Muzzle.Length; i++)
                 {
                     GameObject bulletObj = BulletPool.GetPooledObject();
                     bulletObj.transform.position = Muzzle[i].transform.position;
                     bulletObj.transform.rotation = Muzzle[i].transform.rotation;
                     bulletObj.SetActive(true);
                     Bullet newBullet = bulletObj.GetComponent <Bullet>();
                     newBullet.SetBullet(Damage, TowerStats.bulletSpeed);
                 }
             }
         }
     }
 }