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; }
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; }