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); } } }
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米,继续返回这个点的位置。 } } }