Esempio n. 1
0
    void Awake()
    {
        if (_actor == null)
        {
            _actor = this.GetComponent <Actor>();
        }
        _gameObject    = _actor.gameObject;
        _actor_Data    = _actor._ActorData;
        _transform     = _actor.gameObject.transform;
        _headTransfrom = _actor._Bone_Head;

        _rigidbody         = _actor.gameObject.GetComponent <Rigidbody>();
        _colliderCapsule   = _actor.gameObject.GetComponent <CapsuleCollider>();
        _colliderTransform = _colliderCapsule.transform;
        _colliderYbounds   = _colliderCapsule.bounds.extents.y; //bounding box distance from center to box
        _colliderCenter    = _colliderCapsule.center;



        _State_MovementSpeed  = State_MovementSpeed.walkSpeed;
        _State_Terrain        = State_Terrain.ground;
        _State_Sliding        = State_Sliding.notSliding;
        _State_Ragdoll        = State_IsRagdoll.notRagdolled;
        _State_Headspace      = State_Headspace.canStand;
        _State_LatchedSurface = State_LatchedSurface.noSurface;

        _remaining_Multijumps = _actor_Data._NumJumps;
    }
Esempio n. 2
0
 private void CheckHeadspace()
 {
     Debug.DrawRay(_transform.position + _transform.transform.up * _colliderYbounds * 0.5f, _transform.transform.up * (_colliderYbounds * 1.5f + _HeadspaceRayLength), Color.blue);
     if (Physics.Raycast(this.transform.position + _transform.transform.up * 1.0f, _transform.transform.up, out _headHitInfo, _colliderYbounds * 1.5f + _HeadspaceRayLength))
     {
         _State_Headspace     = State_Headspace.canNotStand;
         _State_MovementSpeed = State_MovementSpeed.crouchSpeed;
         return;
     }
     _State_Headspace = State_Headspace.canStand;
 }
Esempio n. 3
0
    //==============================================================
    //Input() is called every FixedUpdate by the InputController!!!
    //==============================================================
    public void Input(Vector3 inputMoveDirNormalized, Vector3 inputToMouseDirNormalized, Vector3 pointUnderCursor, GameObject objectUnderCursor, bool inputSprint, bool inputCrouch, bool inputJump, bool inputJumpDown)
    {
        if (inputSprint)
        {
            _State_MovementSpeed = State_MovementSpeed.sprintSpeed;
        }
        else if (inputCrouch)
        {
            _State_MovementSpeed = State_MovementSpeed.crouchSpeed;
        }
        else
        {
            _State_MovementSpeed = State_MovementSpeed.walkSpeed;
        }

        CheckGround();
        CheckHeadspace();
        CheckClimbable();

        ScaleCrouching();

        LatchToClimbable(inputCrouch);
        AttachToClimbable();
        Gravity();

        //get current speed multipliers last
        GetActorSpeedMult_TerrainState();
        GetActorSpeedMult_MovementState();
        CalculateCurrentCombinedSpeedMult();


        if (_actor_Data._mayAct)
        {
            if (_actor_Data._mayMove)
            {
                MoveTo(inputMoveDirNormalized);
            }

            if (_actor_Data._mayRotate)
            {
                RotateAimTo(inputToMouseDirNormalized, inputMoveDirNormalized);
            }

            if (_actor_Data._mayJump)
            {
                Jump(inputJump, inputJumpDown, inputCrouch);
            }
        }

        // if _NumJumps > 0 || _JumpPower > 0
        //Falling with actor._GravityMultiplier
        //Falling Impact with crouch and send falldamage to actor
    }