예제 #1
0
    public override void OnInspectorGUI()
    {
        CameraShakeComponent shakeComponent = (CameraShakeComponent)target;
        CameraShake          shake          = shakeComponent.CameraShake;

        EditorUtils.FloatField("Trauma", "Total trauma. The shake will be exponential.", ref shake.Trauma, 0, 1);
        EditorUtils.FloatField("Falloff Rate", "Rate at which the Trauma is reduced. A value of 1 would take 1 Time.", ref shake.FalloffRate);
        EditorUtils.FloatField("Shake Intensity", "Speed of motion. <100 : Slow speeds. >100 more intense shakes.", ref shake.ShakeIntensity);
        EditorGUILayout.Space();

        EditorUtils.BoolField("Translational Shake", "Apply Translational shake to the camera (x,y)", ref shake.TranslationalShake);
        if (shake.TranslationalShake)
        {
            EditorGUI.indentLevel++;
            EditorUtils.Vector2Field("Max Offset", "The maximum X,Y transition that can be done on full Trauma.", ref shake.MaxTranslationalShakeOffset);
            EditorGUI.indentLevel--;
        }

        EditorGUILayout.Space();

        EditorUtils.BoolField("Rotational Shake", "Apply Rotational shake on the z axis of the camera", ref shake.RotationalShake);
        if (shake.RotationalShake)
        {
            EditorGUI.indentLevel++;
            EditorUtils.FloatField("Max Angle Offset", "The maximum Z rotation angle that can be done on full Trauma.", ref shake.MaxRotationalAngleOffset, 0, 360);
            EditorGUI.indentLevel--;
        }
    }
예제 #2
0
        private void CreateEntities()
        {
            var tiledMap = content.Load <TiledMap>(_settings.MapTile);

            String[] tiledMapLayers = new[]
            {
                TiledImportCollisionLayers.BACK_WALLS, TiledImportCollisionLayers.SIDE_WALLS, TiledImportCollisionLayers.NET
            };
            int[] tiledMapPhysicsLayers = new[]
            {
                PhysicsLayers.BACK_WALLS, PhysicsLayers.SIDE_WALLS, PhysicsLayers.NET
            };
            var tiledMapComponent = new Handy.Components.TiledMapComponent(tiledMap, tiledMapLayers, tiledMapPhysicsLayers, true);
            var entity            = new Entity();

            entity.name = "Map";
            tiledMapComponent.renderLayer = RenderLayers.BACKGROUND;
            entity.addComponent(tiledMapComponent);
            addEntity(entity);

            var gameState = new GameState();

            gameState.StateEnum = GameStates.Ready;
            gameState.Players   = new Player.Player[_settings.NumPlayers];
            for (var i = 0; i < _settings.NumPlayers; i++)
            {
                var playerSettings = _settings.Players[i];
                var player         = new Player.Player(playerSettings);
                addEntity(player);
                gameState.Players[i] = player;
            }

            var ball = new Ball.Ball();

            addEntity(ball);
            gameState.Ball = ball;

            GameStateEntity      = new Entity();
            GameStateEntity.name = "Game";
            GameStateEntity.addComponent(new GameStateComponent(gameState));
            GameStateEntity.addComponent(new TimerComponent());
            GameStateEntity.addComponent(new HitStopComponent());
            var scoreboard = new UICanvas();

            scoreboard.name        = "scoreboard";
            scoreboard.renderLayer = RenderLayers.FOREGROUND;
            GameStateEntity.addComponent(scoreboard);
            addEntity(GameStateEntity);

            // add camera
            var cam         = new Camera();
            var cameraShake = new CameraShakeComponent();

            CameraEntity.addComponent(cam);
            CameraEntity.addComponent(cameraShake);
            CameraEntity.name = "Camera";
            addEntity(CameraEntity);
        }
    private void Awake()
    {
        _movement = new Movement(transform, GetComponent <Rigidbody2D>());
        _health   = GetComponent <HealthComponent>();

        _camera      = FindObjectOfType <CameraShakeComponent>();
        _canApproach = true;

        target = GameObject.FindGameObjectWithTag("Player").transform;
    }
예제 #4
0
    private void Awake()
    {
        CameraComponent = GetComponentInChildren <Camera>();
        if (CameraComponent)
        {
            CachedCameraOrthograpicSize = CameraComponent.orthographicSize;
        }
        else
        {
            Debug.LogWarning("Cameara Component is not attached to our Main Camera Follow Object");
        }

        CameraShake = GetComponentInChildren <CameraShakeComponent>();

        SetCameraFollowTarget(this.transform.parent);
        CameraOffsetFromTarget = this.transform.position - TargetTransform.position;

        this.transform.parent = null;
    }
예제 #5
0
        private void CreateEntities()
        {
            var gameState = new PracticeGameState();

            gameState.StateEnum = PracticeGameStates.WaitingForPlayersToJoin;
            // to start we don't have any choosers or players!
            GameStateEntity      = new Entity();
            GameStateEntity.name = "PracticeGame";
            GameStateEntity.addComponent(new PracticeGameStateComponent(gameState));
            addEntity(GameStateEntity);

            // add camera
            var cam         = new Camera();
            var cameraShake = new CameraShakeComponent();

            CameraEntity.addComponent(cam);
            CameraEntity.addComponent(cameraShake);
            CameraEntity.name = "Camera";
            addEntity(CameraEntity);
        }