73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
public class TestScript : MonoBehaviour
|
|
{
|
|
private Rigidbody _rigidbody;
|
|
private InputAction _moveAction;
|
|
private InputAction _attackAction;
|
|
private InputAction _jumpAction;
|
|
|
|
private float smoothX = 0f;
|
|
|
|
[SerializeField]
|
|
private float torqueForce;
|
|
|
|
[SerializeField]
|
|
private float lerpSpeed;
|
|
|
|
[SerializeField]
|
|
private Rigidbody upperRigidBody;
|
|
|
|
private float _initMass;
|
|
|
|
public double GetTorqueForce()
|
|
{
|
|
return Math.Round(smoothX, 2);
|
|
}
|
|
|
|
private void Awake()
|
|
{
|
|
_rigidbody = GetComponent<Rigidbody>();
|
|
_initMass = upperRigidBody.mass;
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
_moveAction = InputSystem.actions.FindAction("Move");
|
|
_attackAction = InputSystem.actions.FindAction("Attack");
|
|
_jumpAction = InputSystem.actions.FindAction("Jump");
|
|
|
|
_moveAction.Enable();
|
|
_attackAction.Enable();
|
|
_jumpAction.Enable();
|
|
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
var moveValue = _moveAction.ReadValue<Vector2>();
|
|
|
|
if (moveValue.x != 0) {
|
|
smoothX = Mathf.Lerp(smoothX, moveValue.x, Time.deltaTime * lerpSpeed);
|
|
} else {
|
|
smoothX = 0;
|
|
}
|
|
|
|
if (_jumpAction.WasPressedThisFrame()) {
|
|
upperRigidBody.mass = 5;
|
|
}
|
|
|
|
if (_jumpAction.WasReleasedThisFrame()) {
|
|
upperRigidBody.mass = _initMass;
|
|
_rigidbody.AddForce(transform.up * 10, ForceMode.Impulse);
|
|
}
|
|
}
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
_rigidbody.AddTorque(new Vector3(0, 0, smoothX) * torqueForce, ForceMode.Acceleration);
|
|
}
|
|
}
|