CS1002 ; EXPECTED,ERROR CS1002: ; expected

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OyuncuKontrol1 : MonoBehaviour
{
private CharacterController controller;
private Vector3 direction;
public float forwardSpeed;

private int serittakip = 1; //0:sağ 1:orta 2:sol
public float seritmesafesi = 4;//iki şerit arasındaki mesafe
// Start is called before the first frame update
void Start()
{
    controller = GetComponent<CharacterController>();
}

// Update is called once per frame
void Update()
{
    direction.z = forwardSpeed;

    //hangi şeritte olmamız gerektiğini belirleyen koşullar

    if (Input.GetKeyDown(KeyCode.RightArrow))
    {
        istenenserit++;
        if(istenenserit == 3 )
            istenenserit ==2
    }


     if (Input.GetKeyDown(KeyCode.LeftArrow))
    {
        istenenserit--;
        if(istenenserit == -1)
            istenenserit =0;
    }

    Vector3 hedefpozisyon= transform.position.z * transform.forward + transform.position.y * transform.up ;

    if(istenenserit ==0)
    {
        hedefpozisyon += Vector3.left * seritmesafe;
    }
    else if(istenenserit == 2);
    {
        hedefpozisyon += Vector3.right* seritmesafesi;
    }

    transform.position=hedefpozisyon;
}

hi guys i’m new at this and i wasted about 2 hours on this can you figure out what the problem is?

private void FixedUpdate ()
{
controller.Move(direction * Time.fixedDeltaTime);
}
}

//desiredlane=istenen şerit
//forwatspedd=ileri hız
//lanedistance= şerit mesefase
//target position=hedef pozisyon
,using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OyuncuKontrol1 : MonoBehaviour
{
private CharacterController controller;
private Vector3 direction;
public float forwardSpeed;

private int serittakip = 1; //0:sağ 1:orta 2:sol
public float seritmesafesi = 4;//iki şerit arasındaki mesafe
// Start is called before the first frame update
void Start()
{
    controller = GetComponent<CharacterController>();
}

// Update is called once per frame
void Update()
{
    direction.z = forwardSpeed;

    //hangi şeritte olmamız gerektiğini belirleyen koşullar

    if (Input.GetKeyDown(KeyCode.RightArrow))
    {
        istenenserit++;
        if(istenenserit == 3 )
            istenenserit ==2
    }


     if (Input.GetKeyDown(KeyCode.LeftArrow))
    {
        istenenserit--;
        if(istenenserit == -1)
            istenenserit =0;
    }

    Vector3 hedefpozisyon= transform.position.z * transform.forward + transform.position.y * transform.up ;

    if(istenenserit ==0)
    {
        hedefpozisyon += Vector3.left * seritmesafe;
    }
    else if(istenenserit == 2);
    {
        hedefpozisyon += Vector3.right* seritmesafesi;
    }

    transform.position=hedefpozisyon;
}

private void FixedUpdate ()
{
    controller.Move(direction * Time.fixedDeltaTime);
}

}

//desiredlane=istenen şerit
//forwatspedd=ileri hız
//lanedistance= şerit mesefase
//target position=hedef pozisyon

@Melisaktas There are a couple of errors in your code.

1.In the line:

if(istenenserit == 3 ) istenenserit ==2

You are using ‘==’ instead of ‘=’ which is an assignment operator. Therefore, this line should be corrected to:

if(istenenserit == 3 ) istenenserit = 2;

2.In the line:

else if(istenenserit == 2);

You have an extra semicolon at the end of the line which causes the next line to be executed regardless of the condition. Remove the semicolon and it should work fine:

else if(istenenserit == 2)

3.In the comment section, there is a line with “desiredlane=istenen şerit” which is not used in the code, but it seems like a reminder to use a variable. However, you forgot to declare the variable. Add the following line at the beginning of the code:

private int desiredLane = 1;

4.Finally, in the line:

hedefpozisyon += Vector3.left * seritmesafe;

You are using ‘seritmesafe’ which is a float value, instead of ‘seritmesafesi’ which is the name of the variable. Change the line to:

hedefpozisyon += Vector3.left * seritmesafesi;

After making these changes, your code should look like this:

using UnityEngine;

public class OyuncuKontrol1 : MonoBehaviour { 
    private CharacterController controller; 
    private Vector3 direction; 
    public float forwardSpeed;
    private int istenenserit = 1; //0:sağ 1:orta 2:sol
    public float seritmesafesi = 4;//iki şerit arasındaki mesafe
    private int desiredLane = 1;
    
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponent<CharacterController>();
    }
 
    // Update is called once per frame
    void Update()
    {
        direction.z = forwardSpeed;
        //hangi şeritte olmamız gerektiğini belirleyen koşullar
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            desiredLane++;
            if(desiredLane == 3 )
                desiredLane = 2;
        }
 
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            desiredLane--;
            if(desiredLane == -1)
                desiredLane = 0;
        }
        
        Vector3 hedefpozisyon= transform.position.z * transform.forward + transform.position.y * transform.up ;
        
        if(desiredLane == 0)
        {
            hedefpozisyon += Vector3.left * seritmesafesi;
        }
        else if(desiredLane == 2)
        {
            hedefpozisyon += Vector3.right * seritmesafesi;
        }
        
        transform.position = hedefpozisyon;
    }
    
    private void FixedUpdate ()
    {
        controller.Move(direction * Time.fixedDeltaTime);
    }
}