Exemplo n.º 1
0
 public override void OnGroundHit(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     //Debug.Log ("hitGround");
     if (hitStabilityReport.LedgeDetected)
     {
         //Debug.Log ("ledge");
     }
 }
Exemplo n.º 2
0
 public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     switch (CurrentCharacterState)
     {
     case CharacterState.Default:
     {
         // We can wall jump only if we are not stable on ground and are moving against an obstruction
         if (AllowWallJump && !Motor.GroundingStatus.IsStableOnGround && !hitStabilityReport.IsStable)
         {
             _canWallJump    = true;
             _wallJumpNormal = hitNormal;
         }
         break;
     }
     }
 }
 public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
 }
Exemplo n.º 4
0
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     // We can wall jump only if we are not stable on ground and are moving against an obstruction
     if (AllowWallJump && !Motor.GroundingStatus.IsStableOnGround && !hitStabilityReport.IsStable)
     {
         _canWallJump    = true;
         _wallJumpNormal = hitNormal;
     }
 }
Exemplo n.º 5
0
 public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     // This is called when the motor's movement logic detects a hit
 }
Exemplo n.º 6
0
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     Debug.Log("Hit");
 }
        public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
        {
            Rigidbody r = hitCollider.attachedRigidbody;

            if (r)
            {
                Vector3 relativeVel = Vector3.Project(r.velocity, hitNormal) - Vector3.Project(Motor.Velocity, hitNormal);
            }
        }
 public override void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 9
0
    public override void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
    {
        // Find all scenarios where stability should be canceled
        if (hitStabilityReport.IsStable)
        {
            // "Launching" off of slopes of a certain denivelation angle
            if (hitStabilityReport.InnerNormal.sqrMagnitude != 0f && hitStabilityReport.InnerNormal.sqrMagnitude != 0f)
            {
                float denivelationAngle = Vector3.Angle(hitStabilityReport.InnerNormal, hitStabilityReport.OuterNormal);
                if (denivelationAngle > MaxStableDenivelationAngle)
                {
                    hitStabilityReport.PreventGroundSnapping = true;
                }
            }

            // Ledge stability
            if (hitStabilityReport.LedgeDetected)
            {
                hitStabilityReport.PreventGroundSnapping = true;

                if (hitStabilityReport.IsOnEmptySideOfLedge && hitStabilityReport.DistanceFromLedge > MaxStableDistanceFromLedge)
                {
                    hitStabilityReport.IsStable = false;
                }
            }
        }
    }
 public virtual void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
 {
     currentState.ProcessHitStabilityReport(hitCollider, hitNormal, hitPoint, atCharacterPosition, atCharacterRotation, ref hitStabilityReport);
 }
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     throw new System.NotImplementedException();
 }
 public virtual void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     currentState.OnMovementHit(hitCollider, hitNormal, hitPoint, ref hitStabilityReport);
 }
Exemplo n.º 13
0
 public override void ProcessHitStabilityReport(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, Vector2 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
 {
     if (hitStabilityReport.LedgeDetected)
     {
         //Debug.Log ("ledge");
     }
 }
Exemplo n.º 14
0
 public override void OnMovementHit(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     if (hitStabilityReport.IsStable)
     {
         //Debug.Log ("IsStable");
     }
 }
Exemplo n.º 15
0
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     if (hitCollider.gameObject.layer == LayerMask.NameToLayer("Plant"))
     {
         if (Vector3.Angle(hitNormal, Vector3.up) > machine.Motor.MaxStableDenivelationAngle)
         {
             machine.climbing_surface = hitCollider;
             machine.surface_normal   = hitNormal;
             can_climb = true;
         }
     }
 }
 // Token: 0x06000D6E RID: 3438 RVA: 0x00042655 File Offset: 0x00040855
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     this.disableAirControlUntilCollision = false;
 }
Exemplo n.º 17
0
 public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     //This would be a good place to implement logic for stepping off a climbing surface
     Debug.Log("Ground Hit");
     standing_transition = true;
 }
Exemplo n.º 18
0
 public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     Callback_OnGroundHit?.Invoke(hitCollider, hitNormal, hitPoint, true);
 }
Exemplo n.º 19
0
        public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
        {
            switch (CurrentCharacterState)
            {
            case CharacterState.Default:
            {
                // We can wall jump only if we are not stable on ground and are moving against an obstruction
                if (AllowWallJump && !Motor.GroundingStatus.IsStableOnGround && !hitStabilityReport.IsStable)
                {
                    _canWallJump    = true;
                    _wallJumpNormal = hitNormal;
                }
                break;
            }

            case CharacterState.Charging:
            {
                // Detect being stopped by obstructions
                if (!_isStopped && !hitStabilityReport.IsStable && Vector3.Dot(-hitNormal, _currentChargeVelocity.normalized) > 0.5f)
                {
                    _mustStopVelocity = true;
                    _isStopped        = true;
                }
                break;
            }
            }
        }
Exemplo n.º 20
0
 public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     //DebugDraw.DrawArrow(hitPoint, hitNormal * 2.0f, Color.black);
 }
Exemplo n.º 21
0
 /// <summary>
 /// Gives you a callback for ground probing hits
 /// </summary>
 public abstract void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport);
Exemplo n.º 22
0
 public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint,
                                    ref HitStabilityReport hitStabilityReport)
 {
     // DebugDraw.DebugArrow(hitPoint, hitNormal * 5.0f, Color.green);
 }
Exemplo n.º 23
0
 public void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     // This is called when the motor's ground probing detects a ground hit
 }
Exemplo n.º 24
0
        public override void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition,
                                                       Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
        {
//            DebugDraw.DrawArrow(hitPoint, hitNormal, Color.yellow);
//            if (hitStabilityReport.LedgeDetected)
//            {
//                DebugDraw.DebugArrow(hitPoint, hitStabilityReport.LedgeGroundNormal, Color.green);
//                DebugDraw.DebugArrow(hitPoint, hitStabilityReport.LedgeRightDirection, Color.red);
//                DebugDraw.DebugArrow(hitPoint, hitStabilityReport.LedgeFacingDirection, Color.blue);
//            }
        }
Exemplo n.º 25
0
 public void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
 {
     // This is called after every hit detected in the motor, to give you a chance to modify the HitStabilityReport any way you want
 }
Exemplo n.º 26
0
 public void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     IsGrounded = true;
 }
Exemplo n.º 27
0
 public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
 }
Exemplo n.º 28
0
 public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport)
 {
     _character.OnMovementHit(hitCollider, hitNormal, hitPoint, ref hitStabilityReport);
 }
 public void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
 {
 }
 /// <summary>
 /// Gives you a chance to modify the HitStabilityReport of every character movement hit before it is returned to the movement code.
 /// Use this for advanced customization of character hit stability
 /// </summary>
 public abstract void ProcessHitStabilityReport(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, Vector2 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport);