}//设置最后到达的随机点 public void MoveOver() { if (transform.position.x >= FinalPosition.x - 0.05 && transform.position.x <= FinalPosition.x + 0.05 && transform.position.y >= FinalPosition.y - 0.05 && transform.position.y <= FinalPosition.y + 0.05) { IfMoveOver = true; switch (MoveFromTo) { case ProcessMoveFrom_To.CreateToReady: PS = ProcessState.Ready; break; case ProcessMoveFrom_To.ReadyToRunning: PS = ProcessState.Running; break; case ProcessMoveFrom_To.RunningToEnded: PS = ProcessState.Ended; break; case ProcessMoveFrom_To.RunningToBloked: PS = ProcessState.Blocked; break; case ProcessMoveFrom_To.RunningToReady: PS = ProcessState.Ready; break; case ProcessMoveFrom_To.BlokedToReady: PS = ProcessState.Ready; break; } MoveFromTo = ProcessMoveFrom_To.JustStay; MoveTo = ProcessMoveTo.ToEntrance; //FunctionsCount++; } }//判断运动是否结束
}//判断运动是否结束 public void MoveNavigation() { double Precision = 0.025; Vector3 Entrance = Vector3.zero; Vector3 Exit = Vector3.zero; switch (MoveFromTo) { case ProcessMoveFrom_To.CreateToReady: { Entrance = new Vector3(-5, -1, 0); Exit = new Vector3(-4, 1, 0); } break; case ProcessMoveFrom_To.ReadyToRunning: { Entrance = new Vector3(-1, 3, 0); Exit = new Vector3(1, 3, 0); } break; case ProcessMoveFrom_To.RunningToEnded: { Entrance = new Vector3(4, 1, 0); Exit = new Vector3(5, -1, 0); } break; case ProcessMoveFrom_To.RunningToReady: { Entrance = new Vector3(1, 2.2f, 0); Exit = new Vector3(-1, 2.2f, 0); } break; case ProcessMoveFrom_To.RunningToBloked: { Entrance = new Vector3(2, 1, 0); Exit = new Vector3(1, -1, 0); } break; case ProcessMoveFrom_To.BlokedToReady: { Entrance = new Vector3(-1, -1, 0); Exit = new Vector3(-2, 1, 0); } break; } if (transform.position.x >= Begin.x - Precision && transform.position.x <= Begin.x + Precision && transform.position.y >= Begin.y - Precision && transform.position.y <= Begin.y + Precision) { MoveTo = ProcessMoveTo.ToEntrance; } if (transform.position.x >= Entrance.x - Precision && transform.position.x <= Entrance.x + Precision && transform.position.y >= Entrance.y - Precision && transform.position.y <= Entrance.y + Precision) { MoveTo = ProcessMoveTo.ToExit; } if (transform.position.x >= Exit.x - Precision && transform.position.x <= Exit.x + Precision && transform.position.y >= Exit.y - Precision && transform.position.y <= Exit.y + Precision) { MoveTo = ProcessMoveTo.ToTarget; } switch (MoveTo) { case ProcessMoveTo.ToEntrance: transform.position = Vector3.MoveTowards(transform.position, Entrance, Time.deltaTime * 1.0f); break; case ProcessMoveTo.ToExit: transform.position = Vector3.MoveTowards(transform.position, Exit, Time.deltaTime * 1.0f); break; case ProcessMoveTo.ToTarget: transform.position = Vector3.MoveTowards(transform.position, FinalPosition, Time.deltaTime * 1.0f); break; } }//保证过桥运动