Untitled
unknown
csharp
a year ago
1.5 kB
23
Indexable
using UnityEngine;
using UnityEngine.InputSystem;
public class MoveAction : PlayerAction
{
// On Move
Vector2 move;
public void OnMove(InputAction.CallbackContext callbackContext)
{
move = callbackContext.ReadValue<Vector2>();
}
// On Enable
void OnEnable()
{
playerPhysics.onPlayerPhysicsUpdate += Move;
}
//On Disable
void OnDisable()
{
playerPhysics.onPlayerPhysicsUpdate -= Move;
}
//Move
// [SerializeField] Transform cameraTransform;
[SerializeField] float speed;
void Move()
{
// GetMoveVector(cameraTransform, groundInfo.normal, move);
RB.velocity = Vector3.ProjectOnPlane((Vector3.right * move.x * speed) + (Vector3.forward * move.y * speed), groundInfo.normal)
+ playerPhysics.verticalVelocity;
}
//Get Move Vector
// Vector3 GetMoveVector(Transform relativeTo, Vector3 upNormal, Vector2 move)
// {
// Vector3 rightNormal = Vector3.Cross(upNormal, relativeTo.forward);
// Vector3 forwardNormal = Vector3.Cross(relativeTo.right, upNormal);
// Vector3.OrthoNormalize(ref upNormal, ref forwardNormal, ref rightNormal);
// Debug.DrawRay(RB.transform.position, rightNormal * 10, Color.red);
// Debug.DrawRay(RB.transform.position, forwardNormal * 10, Color.green);
// return (rightNormal * move.x) + (forwardNormal * move.y);
// }
}
Editor is loading...
Leave a Comment