13-游戏逻辑的判定,实现多只小鸟的飞出
胜利的判定: 场景中小鸟个数大于猪的个数
复制成3只小鸟
新建【空物体】,命名:GameManager,位置归零
新建脚本,命名:GameManager
(让小鸟禁飞:Springjoint失活)
//获取到场景中3只小鸟:通过list集合
public List<Bird> birds;
//获取到猪的集合
public List<Pig> pig;
//初始化小鸟
private void Initialized()
{
//遍历集合
for(int i=0;i<birds.Count;i++)
{
if(i==0)//第一只小鸟
{
birds[i].enabled=true;
【注意:在Bird脚本中写一个:[HideInspector]
public SpringJoint2D sp】
birds[i].sp.enabled=true;
}
else
}
birds[i].enabled=false;
birds[i].sp.enabled=false;
}
给GameManager赋值
飞出去对小鸟进行删除操作,在GameManager脚本中
public static GameManager _instance;
private void Awake()
{
_instance=this;
}
飞出去对小鸟进行删除操作,在Bird脚本中,新建方法Next
//下一只小鸟的飞出
void Next()
{
GameManager._instance.birds.Remove(this);
Destroy(gameObject);
Instantiate(boom,transform.position,Quaternion.identity);
}
void Fly()
{
}
在GameManager脚本中,新建方法NextBird()
//判断游戏逻辑
public void NextBird()
{
if(pig.Count>0)
{
if(birds.Count>0)
{
//下一只飞
Initialized();
}else
{
//赢了
}
}else
{
//赢了
}
}
在Bird脚本中
void Next()
{
GameManager._instance.NextBird();
}
复制猪
Pig脚本中
public bool isPig=false;
void Dead()
{
if(isPig)
{
GameManager._instance.pig.Remove(this);
}
}
在GameManager脚本中,新建方法Start()
private void Start(){
Initialized();
}