当前位置: 首页>>代码示例>>C#>>正文


C# CameraManager.SetCamera方法代码示例

本文整理汇总了C#中CameraManager.SetCamera方法的典型用法代码示例。如果您正苦于以下问题:C# CameraManager.SetCamera方法的具体用法?C# CameraManager.SetCamera怎么用?C# CameraManager.SetCamera使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CameraManager的用法示例。


在下文中一共展示了CameraManager.SetCamera方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: getMovementFor

    private MovementManager getMovementFor(Train train, bool isLocalTrain, NetworkTrainPlayer networkPlayer, GuiPlayersPointsElement playersPoints, NetworkEntityPlaying network)
    {
        float rotationSpeed = train.RotationSpeed;
        float translationSpeed = train.TranslationSpeed * GameMapSizeFactor.GetFactorForCurrentMapRelativeToFirstMap();
        int maxPassengers = train.MaxPassengers;
        Transform mover = train.transform.parent ?? train.transform;

        TransformOperations.To(mover).SetRotationTo(FirstStation.transform.position);

        Route route = new Route();
        route.Add(null);
        route.Add(FirstStation);

        if (isLocalTrain) {
            FirstStation.StartHighlight();
        }

        Player player = networkPlayer == null ? PlayerFactory.CreateLocal(train) : networkPlayer;

        TrainPassengersLimit trainPassengersLimit = TrainPassengersLimitFactory.Get(TrainPassengersLimitType);
        trainPassengersLimit.SetLimit(maxPassengers);
        TrainPassengers passengers = new TrainPassengers(trainPassengersLimit, player);

        TimeCounter timeCounter = new TimeCounter();
        timeCounters.Add(timeCounter);

        CurrentPoints points = new CurrentPoints(CurrentMap.GetCurrentMap(), passengers, timeCounter);
        playersPoints.AddPoints(player, points);

        GuiButtonRendererControl backToMenuButton = null;
        GuiButtonRendererControl showRankingButton = null;

        Movement firstMovement, normalMovement, goOutMovement;
        if (isLocalTrain) {
            Camera camera = Camera.main;
            Vector3 cameraOffset = -(mover.position - camera.transform.position);

            firstMovement = new ParallelMovement()
                .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL))
                .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationStartStepType, TERRESTRIAL, cameraOffset));
            //firstMovement.Update(FirstStation.transform.position);

            normalMovement = new SequentialMovement()
                .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL))
                .AddMovement(new ParallelMovement()
                    .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL))
                    .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationDefaultStepType, TERRESTRIAL, cameraOffset)));

            goOutMovement = new SequentialMovement()
                .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL))
                .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL));

            MapCamera trainCamera = new TrainCamera(Camera.main);
            MapCamera freeCamera = new FreeCamera(Camera.main);
            CameraManager cameraManager = new CameraManager(trainCamera);

            backToMenuButton = new GuiButtonRendererControl(() => Application.LoadLevel(SceneNames.MENU));
            showRankingButton = new GuiButtonRendererControl(() => SocialManager.ForegroundActions.ShowLeaderboard(CurrentMap.GetCurrentMap()));
            GuiButtonRendererControl setTrainCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(trainCamera));
            GuiButtonRendererControl setFreeCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(freeCamera));

            gui.AddElement(new GuiHudElement(passengers, timeCounter));
            gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Train\nCam", GuiPosition.DOWN_LEFT, setTrainCameraButton));
            gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Free\nCam", GuiPosition.DOWN_RIGHT, setFreeCameraButton));

            input.AddLocal(route, cameraManager);
            input.AddButtons(backToMenuButton, showRankingButton, setTrainCameraButton, setFreeCameraButton);
        } else {
            firstMovement = new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL);
            //firstMovement.Update(FirstStation.transform.position);

            goOutMovement = normalMovement = new SequentialMovement()
                .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL))
                .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL));

            networkPlayer.SetRoute(route);
        }

        return new MovementManager(FirstStation, LastStation, route, firstMovement, normalMovement, goOutMovement, passengers, timeCounter, points, gui, backToMenuButton, showRankingButton, isLocalTrain, playersPoints, network);
    }
开发者ID:alvarogzp,项目名称:nextation,代码行数:80,代码来源:Main.cs


注:本文中的CameraManager.SetCamera方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。