public override void Initialize()
    {
        base.Initialize();

        GameAccesPoint.Instance.cameraController = this;

        _cameraContainer = GameObject.Find("CameraContainer");
        if (_cameraContainer == null)
        {
            Debug.LogWarning("CameraContainer could not be found");
            return;
        }

        _mainCamera = _cameraContainer.GetComponentInChildren <Camera>();

        SetCameraToSpawn();

        userActions = GameAccesPoint.Instance.managerSystem.inputManager._userActions;

        // --------------- Game Settings Controlled Options ---------------
        if (SettingsManager.Instance.currentSettings.pixelate)
        {
            _mainCamera.gameObject.AddComponent <PixelateEffect>();
        }
        SettingsManager.Instance.OnSettingsChanged += OnGameSettingsChanged;
        // --------------- Game Settings Controlled Options ---------------

        isInit = true;
    }
    private void SetCustomUserActions()
    {
        _userActions = new CustomUserActions();

        _userActions.RotateCameraLeft.AddDefaultBinding(Key.Q);
        _userActions.RotateCameraLeft.AddDefaultBinding(InputControlType.LeftBumper);

        _userActions.RotateCameraRight.AddDefaultBinding(Key.E);
        _userActions.RotateCameraRight.AddDefaultBinding(InputControlType.RightBumper);

        _userActions.moveUp.AddDefaultBinding(Key.W);
        _userActions.moveUp.AddDefaultBinding(Key.UpArrow);
        _userActions.moveUp.AddDefaultBinding(InputControlType.LeftStickUp);

        _userActions.moveDown.AddDefaultBinding(Key.S);
        _userActions.moveDown.AddDefaultBinding(Key.DownArrow);
        _userActions.moveDown.AddDefaultBinding(InputControlType.LeftStickDown);

        _userActions.moveLeft.AddDefaultBinding(Key.A);
        _userActions.moveLeft.AddDefaultBinding(Key.LeftArrow);
        _userActions.moveLeft.AddDefaultBinding(InputControlType.LeftStickLeft);

        _userActions.moveRight.AddDefaultBinding(Key.D);
        _userActions.moveRight.AddDefaultBinding(Key.RightArrow);
        _userActions.moveRight.AddDefaultBinding(InputControlType.LeftStickRight);

        _userActions.walk.AddDefaultBinding(Key.LeftShift);
        _userActions.walk.AddDefaultBinding(Key.RightShift);
        _userActions.walk.AddDefaultBinding(InputControlType.LeftTrigger);

        _userActions.harvest.AddDefaultBinding(Key.Space);
        _userActions.harvest.AddDefaultBinding(Key.Return);
        //_userActions.harvest.AddDefaultBinding(Mouse.LeftButton);
        _userActions.harvest.AddDefaultBinding(InputControlType.Action1);

        _userActions.use.AddDefaultBinding(Mouse.RightButton);
        _userActions.use.AddDefaultBinding(InputControlType.RightTrigger);

        _userActions.pause.AddDefaultBinding(Key.P);
        _userActions.pause.AddDefaultBinding(Key.Escape);
        _userActions.pause.AddDefaultBinding(InputControlType.Start);

        _userActions.rotateUp.AddDefaultBinding(Key.W);
        _userActions.rotateUp.AddDefaultBinding(Key.UpArrow);
        _userActions.rotateUp.AddDefaultBinding(InputControlType.RightStickUp);

        _userActions.rotateDown.AddDefaultBinding(Key.S);
        _userActions.rotateDown.AddDefaultBinding(Key.DownArrow);
        _userActions.rotateDown.AddDefaultBinding(InputControlType.RightStickDown);

        _userActions.rotateLeft.AddDefaultBinding(Key.A);
        _userActions.rotateLeft.AddDefaultBinding(Key.LeftArrow);
        _userActions.rotateLeft.AddDefaultBinding(InputControlType.RightStickLeft);

        _userActions.rotateRight.AddDefaultBinding(Key.D);
        _userActions.rotateRight.AddDefaultBinding(Key.RightArrow);
        _userActions.rotateRight.AddDefaultBinding(InputControlType.RightStickRight);
    }
 public virtual void Initialize()
 {
     stateManager = GameAccesPoint.Instance.managerSystem.stateManager;
     userActions  = GameAccesPoint.Instance.managerSystem.inputManager._userActions;
 }
 public void Initialize(Object obj)
 {
     parent          = (obj as Player);
     playerRigidbody = parent.transform.GetComponent <Rigidbody>();
     userActions     = parent.userActions;
 }