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);
            }
        }
    }
Beispiel #2
0
    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);
            }
        }
    }