public void MoveRole(RoleModel roleModel) { if ((!isRunning) || ActionManager.GetIsMoving()) { return; } Vector3 target, transfer; if (roleModel.OnBoat) { if (boatController.GetBoatModel().OnRight) { target = DesCoastController.AddRole(roleModel); } else { target = SrcCoastController.AddRole(roleModel); } /* 设置一个中转点使运动轨迹成为折线;下同 */ if (roleModel.role.transform.localPosition.y > target.y) { transfer = new Vector3(target.x, roleModel.role.transform.localPosition.y, target.z); } else { transfer = new Vector3(roleModel.role.transform.localPosition.x, target.y, target.z); } ActionManager.MoveRole(roleModel.role, transfer, target, 5); roleModel.OnRight = boatController.GetBoatModel().OnRight; boatController.RemoveRole(roleModel); } else { if (boatController.GetBoatModel().OnRight == roleModel.OnRight) { if (roleModel.OnRight) { DesCoastController.RemoveRole(roleModel); } else { SrcCoastController.RemoveRole(roleModel); } target = boatController.AddRole(roleModel); if (roleModel.role.transform.localPosition.y > target.y) { transfer = new Vector3(target.x, roleModel.role.transform.localPosition.y, target.z); } else { transfer = new Vector3(roleModel.role.transform.localPosition.x, target.y, target.z); } ActionManager.MoveRole(roleModel.role, transfer, target, 5); } } }
public void LoadResources() { SrcCoastController = new CoastController(); SrcCoastController.CreateCoast("src_coast", PositionModel.src_coast); DesCoastController = new CoastController(); DesCoastController.CreateCoast("des_coast", PositionModel.des_coast); boatController = new BoatController(); boatController.CreateBoat(PositionModel.boat_on_left); roleModelControllers = new RoleController[6]; for (int i = 0; i < 3; i++) { roleModelControllers[i] = new RoleController(); roleModelControllers[i].CreateRole(PositionModel.roles[i], 0, i); } for (int i = 3; i < 6; i++) { roleModelControllers[i] = new RoleController(); roleModelControllers[i].CreateRole(PositionModel.roles[i], 1, i); } foreach (RoleController roleModelController in roleModelControllers) { roleModelController.GetRoleModel().role.transform.localPosition = SrcCoastController.AddRole(roleModelController.GetRoleModel()); } moveController = new MoveController(); river = new RiverModel(PositionModel.river); isRuning = true; time = 120; }
public void MoveRole(RoleModel roleModel) { if ((!isRuning) || moveController.GetIsMoving()) { return; } if (roleModel.OnBoat) { if (boatController.GetBoatModel().OnRight) { moveController.SetMove(DesCoastController.AddRole(roleModel), roleModel.role); } else { moveController.SetMove(SrcCoastController.AddRole(roleModel), roleModel.role); } roleModel.OnRight = boatController.GetBoatModel().OnRight; boatController.RemoveRole(roleModel); } else { if (boatController.GetBoatModel().OnRight == roleModel.OnRight && (boatController.GetBoatModel().roles[0] == null || boatController.GetBoatModel().roles[1] == null)) { if (roleModel.OnRight) { DesCoastController.RemoveRole(roleModel); } else { SrcCoastController.RemoveRole(roleModel); } moveController.SetMove(boatController.AddRole(roleModel), roleModel.role); } } }