Wpis z mikrobloga

#gamedev mam takie pytanko, bo robie gre w ktorej kamera zmienia sie przy dochodzeniu do krawedzi ekranu, tj jak sie wyjdzie poza to wtedy zmienia sie kamera dalej. I zrobilem to tak jak ktos pisal na necie

void Update() {

Vector3 viewPosition = camera. WorldToViewportPoint(player.transform.position);



if( viewPosition.x > 0.9f ) // move right

else if( viewPosition.x < 0.1f ) // move left



// etc

}


No i wszystko w miare fajnie, tylko jak jest przy granicy to obraz sie trzesie, tj przeskakuje w nieskonczonosc z jednego obrazu do drugiego. Starałem się bardziej doprecyzować czyli >0.99f i <0,01f ale to troche zmniejsza problem ale go nie likwiduje. Ktoś, coś?

#pomocy #help #programowanie #csharp
  • 16
@Cilthal: nie, to nie to, bo jak sie odejdzie dalej ze nie jest przy granicy to przestaje. Bardziej jest cos takiego ze przy krawedzi oba warunki sa spelnione, i nie wiem czemu, tak jakby to viewPosition bylo wieksze niz punkt.
@Retnnok: Haha, spoko. Kurcze, nie mam teraz czasu Ci pomóc. Może najprościej zrób sobie zmienną bool pt. isCameraMoving. I potem sprawdzaj:

if( viewPosition.x > 0.9f && !isCameraMoving) { isCameraMoving = true; ... }
@sathra: wow, z boolami to poszlo, zostal juz tylko jeden maly problem a mianowicie jak sie dojdzie tak na styk do krawedzi i zmieni sie kamerka i sie cofnie, to nie lapie powrotu. Tak jakby ta wielkosc punktu ktory jest wykrywany byla, coz, wieksza niz punkcik. nie wiem czy to co pisze jest zrozumiale ;d anyway dzieki bo boole duzo pomogly