public override void OnGroundHit(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, ref HitStabilityReport hitStabilityReport) { //Debug.Log ("hitGround"); if (hitStabilityReport.LedgeDetected) { //Debug.Log ("ledge"); } }
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) { }
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; } }
public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { // This is called when the motor's movement logic detects a hit }
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(); }
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); }
public override void ProcessHitStabilityReport(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, Vector2 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport) { if (hitStabilityReport.LedgeDetected) { //Debug.Log ("ledge"); } }
public override void OnMovementHit(Collider2D hitCollider, Vector2 hitNormal, Vector2 hitPoint, ref HitStabilityReport hitStabilityReport) { if (hitStabilityReport.IsStable) { //Debug.Log ("IsStable"); } }
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; }
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; }
public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { Callback_OnGroundHit?.Invoke(hitCollider, hitNormal, hitPoint, true); }
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; } } }
public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { //DebugDraw.DrawArrow(hitPoint, hitNormal * 2.0f, Color.black); }
/// <summary> /// Gives you a callback for ground probing hits /// </summary> public abstract void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport);
public override void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { // DebugDraw.DebugArrow(hitPoint, hitNormal * 5.0f, Color.green); }
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 }
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); // } }
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 }
public void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { IsGrounded = true; }
public override void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport) { }
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);