コード例 #1
0
    IEnumerator WormMoveMode3_Operate(WormMoveMode wormMoveMode)
    {
        //  实例化,每个怪物物体根据其自身运动模式,从某一位置运动到另一位置
        for (int i = 0; i < wormMoveMode.moveFrom.Length; ++i)
        {
            GameObject wormObj = Instantiate(wormMoveMode.wormEnemy, wormMoveMode.moveFrom[i].position, Quaternion.identity);
            wormObj.transform.SetParent(wormMoveMode.transformParent);
            wormMoveMode.wormObjList.Add(wormObj);

            //  为每个实例化的怪物的运动终点属性赋值
            SetTweenPosition(wormObj, wormMoveMode.moveTo[i].position, (Mathf.Abs(wormMoveMode.moveTo[i].position.x - wormMoveMode.moveFrom[i].position.x)) / wormMoveMode.speed);
            yield return(new WaitForSeconds(wormMoveMode.wormDelay));
        }

        yield return(new WaitForSeconds(wormMoveMode.stayDuration)); //  运动到指定位置后,停留一段时间

        //  集体向某一方向(水平或垂直)继续运动
        foreach (GameObject wormObj in wormMoveMode.wormObjList)
        {
            wormObj.AddComponent <Bolt_Ordinary>();
            wormObj.GetComponent <Bolt_Ordinary>().speed       = wormMoveMode.speed;
            wormObj.GetComponent <Bolt_Ordinary>().direction_X = wormMoveMode.x_Direction;
            wormObj.GetComponent <Bolt_Ordinary>().direction_Y = wormMoveMode.y_Direction;
        }
        wormMoveMode.wormObjList.Clear();
    }
コード例 #2
0
 IEnumerator WormMoveMode1_Operate(WormMoveMode wormMoveMode)
 {
     for (int i = 0; i < wormMoveMode.moveFrom.Length; ++i)
     {
         for (int j = 0; j < wormMoveMode.wormCount; ++j)
         {
             GameObject wormObj = Instantiate(wormMoveMode.wormEnemy, wormMoveMode.moveFrom[i].position, Quaternion.identity);
             wormObj.transform.SetParent(wormMoveMode.transformParent);
             SetTweenPosition(wormObj, wormMoveMode.moveTo[i].position, (Mathf.Abs(wormMoveMode.moveTo[i].position.x - wormMoveMode.moveFrom[i].position.x)) / wormMoveMode.speed);
             yield return(new WaitForSeconds(wormMoveMode.wormDelay));
         }
         yield return(new WaitForSeconds(wormMoveMode.waveDelay));
     }
 }
コード例 #3
0
    IEnumerator WormMoveMode2_Operate(WormMoveMode wormMoveMode)
    {
        //  生成并移动至指定位置
        for (int i = 0; i < wormMoveMode.moveFrom.Length; ++i)
        {
            GameObject wormObj = Instantiate(wormMoveMode.wormEnemy, wormMoveMode.moveFrom[i].position, Quaternion.identity);
            wormObj.transform.SetParent(wormMoveMode.transformParent);
            wormMoveMode.wormObjList.Add(wormObj);
            SetTweenPosition(wormObj, wormMoveMode.moveTo[i].position, (Mathf.Abs(wormMoveMode.moveTo[i].position.y - wormMoveMode.moveFrom[i].position.y)) / wormMoveMode.speed);
            yield return(new WaitForSeconds(wormMoveMode.wormDelay));
        }

        yield return(new WaitForSeconds(wormMoveMode.stayDuration)); //  停留

        //  继续运动
        foreach (GameObject wormObj in wormMoveMode.wormObjList)
        {
            wormObj.AddComponent <Bolt_Ordinary>();
            wormObj.GetComponent <Bolt_Ordinary>().speed       = wormMoveMode.speed;
            wormObj.GetComponent <Bolt_Ordinary>().direction_Y = wormMoveMode.y_Direction;
        }
        wormMoveMode.wormObjList.Clear();
    }