Развитие гоночек
This commit is contained in:
1 parent
ec60c47652
commit
b54083521f
532 files changed
+16091
-28231
No files matched your search
@@ -0,0 +1,55 @@
|
||||
using Code.Example.Race.Racer.AI;
|
||||
using Code.Example.Race.Racer.Car;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.Player
|
||||
{
|
||||
public class PlayerCarController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Rigidbody _rigidbody;
|
||||
[SerializeField] private PlayerCarInput _playerCarInput;
|
||||
[SerializeField] private PlayerRacer _playerRacer;
|
||||
[SerializeField] private CarWheelRotatorPlayer _wheels;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_playerCarInput.MovementInput == Vector2.zero) return;
|
||||
|
||||
// var movementForward = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
|
||||
//
|
||||
// _rigidbody.AddForce(movementForward * Time.fixedDeltaTime, ForceMode.Force);
|
||||
|
||||
var force = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
|
||||
_rigidbody.AddForce(force, ForceMode.Force);
|
||||
|
||||
// if (Mathf.Abs(_playerCarInput.MovementInput.y) < 0.1f && _rigidbody.linearVelocity.magnitude > 0.3f)
|
||||
// {
|
||||
// _rigidbody.AddForce(-_rigidbody.linearVelocity * (_playerRacer.Data.brakeForce * Time.fixedDeltaTime),
|
||||
// ForceMode.Force);
|
||||
// }
|
||||
|
||||
var steerInput = _playerCarInput.MovementInput.x;
|
||||
if (_playerCarInput.MovementInput.y < 0)
|
||||
steerInput = -_playerCarInput.MovementInput.x;
|
||||
|
||||
// var steer = steerInput * maxSteerAngle;
|
||||
//
|
||||
// if (frontLeftWheel) frontLeftWheel.localRotation = Quaternion.Euler(0, steer, 0);
|
||||
// if (frontRightWheel) frontRightWheel.localRotation = Quaternion.Euler(0, steer, 0);
|
||||
|
||||
if (!(_rigidbody.linearVelocity.magnitude > 0.5f)) return;
|
||||
|
||||
// var turn = steerInput * _playerRacer.Data.turnSpeed * Time.fixedDeltaTime;
|
||||
// _rigidbody.MoveRotation(_rigidbody.rotation * Quaternion.Euler(0, turn, 0));
|
||||
|
||||
if (!(_rigidbody.linearVelocity.magnitude is > 1f or < -1f)) return;
|
||||
|
||||
var rotateAmount = _playerCarInput.MovementInput.x * _playerRacer.Data.angularSpeed;
|
||||
|
||||
_wheels.RotateWheels(rotateAmount * 10 * Time.fixedDeltaTime);
|
||||
var wheelRotation = transform.rotation.eulerAngles;
|
||||
wheelRotation.y += rotateAmount;
|
||||
transform.rotation = Quaternion.Euler(wheelRotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user