子弹
1.新建子弹节点
将子弹拖到场景内,重命名为TankBossBullet,调整位置便于测试
2.子弹动画
在TankBossBullet节点上新建动画BossTank_Bullet,保存在Animations/Boss文件夹下
编辑动画
3.添加碰撞检测
添加组件Box Collider 2D,调整碰撞区域大小,设置为Trigger
4.添加脚本
新建脚本BossBullet.cs,添加组件到TankBossBullet节点
添加参数speed,设置速度
public float speed; //速度
void Update()
{
transform.position += new Vector3(-speed * transform.localScale.x * Time.deltaTime, 0f, 0f);
}
添加碰撞检测函数
private void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player")
{
//伤害Player
PlayerHealthController.sInstance.DealDamage();
}
Destroy(gameObject);
}
5.子弹预制体
在Prefabs文件夹下,新建Boss文件夹,存放Boss的预制体
将TankBossBullet拖到Boss文件夹下制成预制体,删除子弹节点
将子弹预制体绑定到BossBattle中的Bullet
6.发射子弹
在BossTankController.cs中,添加case bossState.shooting:
逻辑
case bossState.shooting:
shotCounter -= Time.deltaTime;
if(shotCounter <= 0)
{
shotCounter = timeBetweenShot;
//在开火点添加子弹进行发射
var newBullet = Instantiate(bullet, firePoint.position, firePoint.rotation);
newBullet.transform.localScale = theBoss.localScale;
}
break;