Soru & Cevap

Unity (401)Singleton dersinde PingPong komutu içine min ve max değişkenlerini atayamıyorum. Çalışıyor ancak objeler hareket etmiyor

18.02.2021 - 01:23

Ama max-min yerine 3.0f değeri oluyor.

Unity401 singleton dk7.56 

132 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user sevgii
sevgii
31.12.2022 - 01:05

Hatayı detaylı paylaşır mısınız

Profile picture for user oxydo.archangels
oxydo.archangels
19.02.2021 - 02:10

Eğer eğitim videolarıyla birebir aynı gidiyorsan bazen unity "Camera.main" tanımıyor, bu nedenle EkranHesaplayıcı içerisindeki Awake metodu içerisinde yukseklik ve genislik değerine atama yaptığımız  " yukseklik = Camera.main....." kısmını "yukseklik = UnityEngine.Camera.Main...." ve aynı şekilde "genislik" de değiştirerek tekrar deneyebilir misin?

Sefai Özgün
19.02.2021 - 04:34

Evet eğitim videolarıyla birebir gittim. Denedim malesef yine olmadı :(

Profile picture for user oxydo.archangels
oxydo.archangels
18.02.2021 - 10:39

Oyunu başlattıktan sonra durdurarak objenin x değerinin değişip değişmediğini kontrol edebilir misin? Girdiğin değerin küçük olması nedeni ile objenin hareket ettiğini fark etmiyor olabilirsin.

Sefai Özgün
18.02.2021 - 10:41

Hayır değişmiyor malesef :(

Profile picture for user finrod
finrod
18.02.2021 - 09:02

Kodunu da paylaşır mısın

Sefai Özgün
18.02.2021 - 09:16
PolygonCollider2D polygonCollider2D;

    float randomHiz;
    float min;
    float max;
    bool hareket = true;

    public bool Hareket
    {
        get
        {
            return hareket;
        }
        set
        {
            hareket = value;
        }
    }
    void Start()
    {
        polygonCollider2D = GetComponent<PolygonCollider2D>();
        randomHiz = Random.Range(0.5f, 1.0f);
        float objeGenislik= polygonCollider2D.bounds.size.x / 2;

        if (transform.position.x > 0)
        {
            min = objeGenislik;
            max = EkranHesaplayicisi.instance.Genislik - objeGenislik;
        }
        else
        {
            min = -EkranHesaplayicisi.instance.Genislik + objeGenislik;
            max = -objeGenislik;
        }

    }

    void Update()
    {
        if (hareket)
        {
            float pingPongX = Mathf.PingPong(Time.time * randomHiz, max - min) + min;
            Vector2 pingPong = new Vector2(pingPongX, transform.position.y);
            transform.position = pingPong;
        }
    }

En alttaki if in içinde max- min yerine değer girdiğimde çalışıyor ancak bu şekilde çalışmasına rağmen nesneler hareket etmiyor