Unity-(仿flappybird)协程延时创建柱子和延时飞行
小菜鸟
2021-11-11 PM
2274℃
0条
创建柱子
public IEnumerator Creat(){
yield return new WaitForSeconds(WaitTime);//多长之后时间开始不断生成柱子
while(Creat_Pillar){//开始创建
GameObject pillar = GameObject.Instantiate(prefabPillar);//获取预制体
pillar.transform.position = new Vector3(point.position.x, Random.Range(3f, 7f), 0);//设置柱子位置
//Debug.Log("初始坐标"+pillar.transform.position);
yield return new WaitForSeconds(NextTime);//限制生成时间间隔
}
}
延时飞行
/// <summary>
/// 协同方式起飞
/// </summary>
/// <param name="time">到达终点的时间</param>
/// <param name="startpos">初始坐标</param>
/// <param name="endpos">终点坐标</param>
/// <returns></returns>
IEnumerator MovingBlock(float time, Vector3 startpos, Vector3 endpos)
{
float elapsedTime = 0;//初始时间
while (elapsedTime < time)//执行多长时间
{
transform.position = Vector3.Lerp(startpos, endpos, (elapsedTime / time));//飞行
elapsedTime += Time.deltaTime;//增加飞行高度
yield return null;//延时
}
}
/*调用*/
//StartCoroutine(MovingBlock(0.3f,this.transform.position, new Vector3(this.transform.position.x, this.transform.position.y + 1.5f)));