Unity (401)Singleton dersinde PingPong komutu içine min ve m ...
18.02.2021 - 01:23
Ama max-min yerine 3.0f değeri oluyor.
Unity401 singleton dk7.56
126
Görüntülenme
0 Beğeni
Hatayı detaylı paylaşır mısınız
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?
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.
Hayır değişmiyor malesef :(
Kodunu da paylaşır mısın
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
Evet eğitim videolarıyla birebir gittim. Denedim malesef yine olmadı :(