Пример #1
0
 public Vector3 GetNextTargetPoint()
 {
     while (true)
     {
         if (wayPoints.points [targetWayPointIndex].position.z - player.position.z < 10)
         {
             targetWayPointIndex--;
             if (targetWayPointIndex < 0)
             {
                 envGenerator.GenerateForest();
                 Destroy(this.gameObject, 2);
                 return(envGenerator.forest1.GetNextTargetPoint());
             }
         }
         else
         {
             return(wayPoints.points [targetWayPointIndex].position);
         }
     }
 }
Пример #2
0
 public Vector3 GetNextTargetPoint()       //PlayerMove 会叫这个方法
 {
     while (true)
     {
         if (wayPoints.points[targetWayPointIndex].position.z - player.position.z < 10)        //如果前一个点和玩家距离小于10米就移到下个点
         //这里原本是这句wayPoints.points[targetWayPointIndex].position-player.position).sqrMagnitude<100
         //但是当player左右移动之后就不会继续前进了,原来的意思是如果玩家距离前一个点在10米就找下个点,这样写是因为这个时候只有一条赛道
         //假如玩家从中间赛道滑到右边赛道,那么玩家右边赛道和中间赛道的waypoint至少也有14米,所以无法往下个点移动,这里改成比较Z轴距离就没问题了。
         {
             targetWayPointIndex--;
             if (targetWayPointIndex < 0)
             {
                 envGenerator.GenerateForest();                     //当前面障碍没了,就要创建新的森林了
                 //Camera.main.SendMessage("GenerateForest"); //这句作用和上一句一样,但是怎么区分分别什么时候用那?
                 Destroy(this.gameObject, 1);                       //1秒之后销毁当前森林
                 return(envGenerator.forest1.GetNextTargetPoint()); //再叫自己继续循环
             }
         }
         else
         {
             return(wayPoints.points[targetWayPointIndex].position);               //如果还不到10米,继续返回这个点的位置。
         }
     }
 }