Çözüldü C# Unity'de köşeli parantez hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

ALKAR396

Hectopat
Katılım
27 Ocak 2021
Mesajlar
448
Çözümler
1
Unity'de oyun yapıyorum, bu kodları yazıyorum. Köşeli parantez hatası veriyor, bakar mısınız?

[CODE title="Kod"]using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BirdScript : MonoBehaviour {

public static BirdScript instance;


[SerializeField]

private Rigidbody2D MyRigidbody;

[SerializeField]

private Animator Anim;

private float Speed= 3f;

private float BounceSpeed= 4f;

private bool didFlap;

public bool isAlive;



void Awake(){
if(instance==null){
instance=this;
}

isAlive=true;

}


// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame
void FixedUpdate(){
if(isAlive){
Vector3 temp =transform.position;
temp.x+=Speed*Time.deltaTime;
transform.position=temp;
if(didFlap){
didFlap=false;
MyRigidbody.velocity=new Vector2(0,BounceSpeed);
Anim.SetTrigger("flap");
}if(MyRigidbody.velocity.y>=0){
transform.rotation=Queternion.Euler(0,0,0);

}else{


float angle=0;
angle=Mathf.Lerp(0,-90,-MyRigidbody.velocity.y/7);
transform.rotation=Quaternion.Euler(0,0,angle)
}
}

public void uc(){
didFlap=true;
}





}
[/CODE]
 
Çözüm
Eki Görüntüle 1244461

Bak burada ";" eksil transfırm kodunda dener misin?

Düzenledim kodumu bu dediğimi yap ve kodun en altında koy.
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BirdScript : MonoBehaviour
{

    public static BirdScript instance;


    [SerializeField]

    private Rigidbody2D MyRigidbody;

    [SerializeField]

    private Animator Anim;

    private float Speed = 3f;

    private float BounceSpeed = 4f;

    private bool didFlap;

    public bool isAlive;



    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }

        isAlive = true;

    }


    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void FixedUpdate()
    {
        if (isAlive)
        {
            Vector3 temp = transform.position;
            temp.x += Speed * Time.deltaTime;
            transform.position = temp;
            if (didFlap)
            {
                didFlap = false;
                MyRigidbody.velocity = new Vector2(0, BounceSpeed);
                Anim.SetTrigger("flap");
            }
            if (MyRigidbody.velocity.y >= 0)
            {
                transform.rotation = Queternion.Euler(0, 0, 0);

            }
            else
            {


                float angle = 0;
                angle = Mathf.Lerp(0, -90, -MyRigidbody.velocity.y / 7);
                transform.rotation = Quaternion.Euler(0, 0, angle);
            }
        }

    }

    public void uc()
        {
            didFlap = true;
        }





}

bunu dener misin. Ayrıcı kodu "Quaternion" olarak değiştir onu da yanlış yazmışsın.
Merhaba. Serializefield satırı ile tanımladığınız private değişkenler arasındaki satırı kaldırır mısınız? Alt alta olsunlar yani. Bu şekilde deneyip dönüş yapabilirseniz sonrasına bakalım tekrar
 
Sildim hala 74. satırda ki paranteze hata veriyor

Assets/Scripts/BirdScript.cs(72,6): error CS1513: } expected

O satırın altına bir parantez koyup dener misin? Şu an editor açık olmadığından kodları test edemiyorum ama parantezlerde sıkıntı var açma ile kapama parantez adedi uyuşmuyor.
Sildiginiz işareti geri alın ve son satırdaki } bir tane daha koyun.

Onu yaparsa start ve Update metodu ana sınıfın dışında kalıyor. Unity'de öyle bir şey yok ki hocam. Unity için yazılmış script bu.
 

Technopat Haberler

Geri
Yukarı