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)));
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~