En cas de doute tu peux faire un petit script pour afficher le nombre de fps, tu as plein d’exemple sur le net.
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
Mon jeu lag (mobile)
Re: Mon jeu lag (mobile)
le restant de lag vient en fait du script player controller avec le script du deplacement mis dans void fixedupdate.
je ne peut pas le mettre dans update car le jeu va a chaque fois que je fais un mouvement freiner la voiture pour avancer.
mais quand je ne met que le code de déplacement dans update , le jeu est totalement fluide. comment je pourrais faire ??
je ne peut pas le mettre dans update car le jeu va a chaque fois que je fais un mouvement freiner la voiture pour avancer.
mais quand je ne met que le code de déplacement dans update , le jeu est totalement fluide. comment je pourrais faire ??
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;
}
}
}
Re: Mon jeu lag (mobile)
j'ai essayé de mettre les contrôles de directions dans lateUpdate mais il y a un délai a chaque fois que je change de ligne et le défilement du décor ralentis