Inheritance: MonoBehaviour
Ejemplo n.º 1
0
 public FallViewModel()
 {
     //comand- new
     CurrentModel = new ManageFallModel();
     Fall         = CurrentModel.Fall;
 }
Ejemplo n.º 2
0
    private void Movement()
    {
        _isGrounded = controller.isGrounded;
        if (!_isGrounded && _airTime > 0.3f && !_isJumping && !_beganFall)
        {
            Fall?.Invoke();
            _beganFall = true;
        }
        if (!_isGrounded)
        {
            _airTime += Time.fixedDeltaTime;
        }
        else
        {
            _airTime   = 0;
            _isJumping = false;
            if (_beganFall)
            {
                Land?.Invoke();
            }
            _beganFall = false;
        }
        if (_isJumping && jumpTime < _airTime)
        {
            _isJumping = false;
            Fall?.Invoke();
        }

        Vector3 camForward = Vector3.ProjectOnPlane(cam.transform.forward, Vector3.up).normalized;
        Vector3 dir        = camForward * Input.GetAxis("Vertical") * (scrollCam ? 0 : 1) + cam.transform.right * Input.GetAxis("Horizontal");

        if (_isDead)
        {
            dir = Vector3.zero;
        }
        Vector3 toMove = dir * (_isSprinting ? sprintSpeed : movementSpeed) + down * gravity * _airTime * (_isGrounded ? 0 : 1) + (_isJumping ? -down : Vector3.zero) * jumpForce * (1 - (_airTime / jumpTime) / 2);

        if (scrollCam)
        {
            toMove = Vector3.ProjectOnPlane(toMove, cam.transform.forward);
        }

        if (_isMoving)
        {
            controller.transform.rotation = Quaternion.LookRotation(camForward * (Input.GetAxis("Vertical") < 0 ? -1 : 1), Vector3.up) * Quaternion.AngleAxis(90 * Input.GetAxis("Horizontal") * (Input.GetAxis("Vertical") < 0 ? -1 : 1), Vector3.up);
        }

        controller.Move(Time.fixedDeltaTime * toMove);
        cam.transform.position = controller.transform.position + cameraOffset;

        if (down != Vector3.down)
        {
            controller.enabled = false;
            transform.position = Vector3.ProjectOnPlane(transform.position, Camera.main.transform.forward);
            controller.enabled = true;
        }

        if (dir.magnitude > 0)
        {
            CheckIfStartedMoving();
        }
        else
        {
            CheckIfStoppedMoving();
        }
    }
Ejemplo n.º 3
0
 public FallModel()
 {
     CurFall = new Fall();
     MyBL    = BL.FactoryBL.GetBL();
 }