예제 #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;
    }
예제 #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;
 }