Files
pogo-stick-game/Assets/TestScript.cs

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);
}
}