Wpis z mikrobloga

Witam,

Jak poprawnie w unity synchronizować obracające się koła w samochodzie w grze multiplayer? Używam PUN'a i niby tam wszystko oparte jest na rigidbody ale nie mogę dać w kole tego komponentu bo w ogóle będzie dziwnie wyglądać bo przecież obrót koła to tak naprawdę tylko mesh transform.

Spotkał się ktoś z was z tym problemem?

#unity3d #gamedev
  • 6
@n1troo: no dobra sam sobie odpowiem bo zwykle szybciej znajde niz odpowiedz uzyskam ;)

czyli samo sterowanie przesyłamy a nie jak chciałem obrót koła. Jeżeli mamy już mechanizm który nam obraca koło to przesyłamy tylko te odczyty z klawiatury a potem detektujemy kim jesteśmy if (!photonView.isMine) i odpowiednio reagujemy
@n1troo: a co jeżeli będzie się poruszał 50kmh, dostanie wartość negatywną czyli hamowania/cofania (-1) to jadąc do przodu, koła będą się kręcić w tył? w photonie wystarczy tylko raz sprawdzić dla obiektu czy isMine i tu albo sterujesz/wysyłasz dane do innych graczy, bądź odbierasz od innych.
Jeźeli dla pojazdów innych graczy używasz WheelColliderów to też możesz bezpośrednio z nich pobierać rotacje.
Wg. mnie najprościej po prędkości roota lub jakoś lerpa wykorzystać
a co jeżeli będzie się poruszał 50kmh, dostanie wartość negatywną czyli hamowania/cofania (-1) to jadąc do przodu, koła będą się kręcić w tył?


U przy hamowaniu stoją w miejscu aż osiągną wartość 0 i dopiero potem robią w drugą stronę obrót.

Jeźeli dla pojazdów innych graczy używasz WheelColliderów to też możesz bezpośrednio z nich pobierać rotacje.Wg. mnie najprościej po prędkości roota lub jakoś lerpa wykorzystać


też można w sumie, ale to jest
@n1troo: ja w swojej grze multi jak chcę zsynchronizować w unity obrót obiektu to wysyłam na początku info o jaki kąt jest obrócony i jaką prędkośc kątową posiada czyli angularvelocity, a potem tylko kontrolne sprawdzenie czy się kręci na cliencie tak jak na masterze tak raz na sek (ale tylko dlatego że na obiekt czasami mi działają dodatkowe siły).