Search Unity

Question help for a move script

Discussion in 'Scripting' started by Janpole, Feb 18, 2021.

  1. Janpole

    Janpole

    Joined:
    Oct 1, 2020
    Posts:
    13
    hi everyone
    im need help for a script
    Code (CSharp):
    1. using System.Collections;
    2. using UnityEngine;
    3.  
    4. public class PalyerController : MonoBehaviour
    5. {
    6.     private CharacterController controller;
    7.     private Vector3 direction;
    8.     public float forwardSpeed;
    9.     public float maxspeed;
    10.  
    11.     private int desiredLane = 1;//0 :left 1:middle 2:right
    12.     public float laneDistance = 4; //la distance
    13.     public bool gameStarted = true;
    14.     void Start()
    15.     {
    16.         gameStarted = true;
    17.         controller = GetComponent<CharacterController>();
    18.     }
    19.  
    20.     // Update is called once per frame
    21.     void Update()
    22.     {
    23.         if(gameStarted == true)
    24.         {
    25.             if (forwardSpeed < maxspeed)
    26.                 forwardSpeed += 0.1f * Time.deltaTime;
    27.             direction.z = forwardSpeed;
    28.             if (SwipeManager.swipeRight)
    29.             {
    30.                 desiredLane++;
    31.                 if (desiredLane == 3)
    32.                     desiredLane = 2;
    33.             }
    34.  
    35.             if (SwipeManager.swipeLeft)
    36.             {
    37.                 desiredLane--;
    38.                 if (desiredLane == -1)
    39.                     desiredLane = 0;
    40.             }
    41.  
    42.             Vector3 targetPosition = transform.position.z * transform.forward + transform.position.y * transform.up;
    43.  
    44.             if (desiredLane == 0)
    45.             {
    46.                 targetPosition += Vector3.left * laneDistance;
    47.             }
    48.             else if (desiredLane == 2)
    49.             {
    50.                 targetPosition += Vector3.right * laneDistance;
    51.             }
    52.  
    53.  
    54.             if (transform.position == targetPosition)
    55.                 return;
    56.             Vector3 diff = targetPosition - transform.position;
    57.             Vector3 moveDir = diff.normalized * 25 * Time.deltaTime;
    58.             if (moveDir.sqrMagnitude < diff.sqrMagnitude)
    59.                 controller.Move(moveDir);
    60.             else
    61.                 controller.Move(diff);
    62.  
    63.         }
    64.     }
    65.        
    66.  
    67.     private void FixedUpdate()
    68.     {
    69.        if(gameStarted == true)
    70.         {
    71.             controller.Move(direction * Time.fixedDeltaTime);
    72.         }
    73.      
    74.     }
    75.  
    76.     private void OnControllerColliderHit(ControllerColliderHit hit)
    77.     {
    78.         if (hit.transform.tag == "obstacle")
    79.         {
    80.             PlayerManager.gameOver = true;
    81.             gameStarted = false;
    82.         }
    83.     }
    84. }
    85.  
    i would like to put all content fixed update in update.
    but when i do that , he dont work correctly

    can you help me please ?
    im french user my inglish is not verry good sorry
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    38,752
    You can probably just delete lines 63 through 70 (inclusive).

    If it fails, how to report your problem productively in the Unity3D forums:

    http://plbm.com/?p=220
     
  3. Janpole

    Janpole

    Joined:
    Oct 1, 2020
    Posts:
    13
    thank you
    but i have find the solution