Vue la simplicité de la scène et su code je vois pas comment ça aurait pu lague
Sinon pour les scripts essaye de les regrouper mieux que ça j’ai galéré pour les retrouver
Code : Tout sélectionner
using System.Collections;
using UnityEngine;
public class PalyerController : MonoBehaviour
{
private CharacterController controller;
private Vector3 direction;
public float forwardSpeed;
public float maxspeed;
private int desiredLane = 1;//0 :left 1:middle 2:right
public float laneDistance = 4; //la distance
void Start()
{
controller = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
if (forwardSpeed < maxspeed)
forwardSpeed += 0.1f * Time.deltaTime;
direction.z = forwardSpeed;
if (SwipeManager.swipeRight)
{
desiredLane++;
if (desiredLane == 3)
desiredLane = 2;
}
if (SwipeManager.swipeLeft)
{
desiredLane--;
if (desiredLane == -1)
desiredLane = 0;
}
Vector3 targetPosition = transform.position.z * transform.forward + transform.position.y * transform.up;
if(desiredLane == 0)
{
targetPosition += Vector3.left * laneDistance;
}else if (desiredLane == 2)
{
targetPosition += Vector3.right * laneDistance;
}
if (transform.position == targetPosition)
return;
Vector3 diff = targetPosition - transform.position;
Vector3 moveDir = diff.normalized * 25 * Time.deltaTime;
if (moveDir.sqrMagnitude < diff.sqrMagnitude)
controller.Move(moveDir);
else
controller.Move(diff);
}
private void Update()
{
transform.Translate(Vector3.forward * forwardSpeed * Time.deltaTime);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
if (hit.transform.tag == "obstacle")
{
PlayerManager.gameOver = true;
}
}
}