mirror of
https://github.com/nothke/quality-control.git
synced 2025-08-31 23:53:44 +00:00
Added KCC
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KinematicCharacterController
|
||||
{
|
||||
public interface ICharacterController
|
||||
{
|
||||
/// <summary>
|
||||
/// This is called when the motor wants to know what its rotation should be right now
|
||||
/// </summary>
|
||||
void UpdateRotation(ref Quaternion currentRotation, float deltaTime);
|
||||
/// <summary>
|
||||
/// This is called when the motor wants to know what its velocity should be right now
|
||||
/// </summary>
|
||||
void UpdateVelocity(ref Vector3 currentVelocity, float deltaTime);
|
||||
/// <summary>
|
||||
/// This is called before the motor does anything
|
||||
/// </summary>
|
||||
void BeforeCharacterUpdate(float deltaTime);
|
||||
/// <summary>
|
||||
/// This is called after the motor has finished its ground probing, but before PhysicsMover/Velocity/etc.... handling
|
||||
/// </summary>
|
||||
void PostGroundingUpdate(float deltaTime);
|
||||
/// <summary>
|
||||
/// This is called after the motor has finished everything in its update
|
||||
/// </summary>
|
||||
void AfterCharacterUpdate(float deltaTime);
|
||||
/// <summary>
|
||||
/// This is called after when the motor wants to know if the collider can be collided with (or if we just go through it)
|
||||
/// </summary>
|
||||
bool IsColliderValidForCollisions(Collider coll);
|
||||
/// <summary>
|
||||
/// This is called when the motor's ground probing detects a ground hit
|
||||
/// </summary>
|
||||
void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport);
|
||||
/// <summary>
|
||||
/// This is called when the motor's movement logic detects a hit
|
||||
/// </summary>
|
||||
void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, ref HitStabilityReport hitStabilityReport);
|
||||
/// <summary>
|
||||
/// This is called after every move hit, to give you an opportunity to modify the HitStabilityReport to your liking
|
||||
/// </summary>
|
||||
void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport);
|
||||
/// <summary>
|
||||
/// This is called when the character detects discrete collisions (collisions that don't result from the motor's capsuleCasts when moving)
|
||||
/// </summary>
|
||||
void OnDiscreteCollisionDetected(Collider hitCollider);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user