Page 4 sur 4

Re: Mon jeu lag (mobile)

Publié : 16 Fév 2021 23:19
par youtpout
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 😹

Re: Mon jeu lag (mobile)

Publié : 17 Fév 2021 13:36
par Janpole
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 ??

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)

Publié : 17 Fév 2021 13:42
par Janpole
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