Zrobiłem poruszają się platformę. Jest jakiś sposób, żeby postać bez pomocy stała na bloku w ruchu? Pytam, bo u mnie trzeba trzymać klawisz odpowiadający za jeden z kierunków, żeby postać się nie ześlizgiwała.
@JayRG: Delta to jest zmiana wartości w czasie. Nie wiem jak jest w Unity, ale wystarczy jedna linijka np. Player.position += MovingPlatform.delta_position;
@JayRG: Sam jakiś czas temu przerzuciłem się na Unity i bym chciał robić więcej niż robię ( ͡°͜ʖ͡°) no ale najważniejsze że są chociaż te małe kroczki.
@JayRG: Pierwsze co mi przychodzi na myśl: zrób trigger na platformie. W metodzie OnTriggerEnter zrób: player.transform.parent = platform.transform. W metodzie OnTriggerExit: player.transform.parent = null.
@JayRG: zrob na tej platformie tag, np. platforma. potem zrob funkcje void OnCollisionEnter(Collision col) { if(col.gameobject == "platforma") this.transform.position += col.transform.deltaposition} i dodaj to do gracza. dawno w unity nie siedzialem, wiec moze trzeba bedzie pokomibionawc z oncollisionenter, no i pozniej pewnie uzyc OnCollisionExit, no ale jak bd mial jakis problem to wolaj;)
@JayRG: w zakladce project dajesz add -> physic material, wszystko co ma w nazwie friction ustaw na 99999999999 i potem w komponencie collider w platformie i graczu masz slot na ten physic material, dodaj go tam i wtedy gracz nie powinien sie zsuwac
#gamedev #unity
#jaydev
źródło: comment_j1scQMfk5YBpqlQaGkXl8SzV3jY2CpOd.jpg
PobierzNie wiem jak jest w Unity, ale wystarczy jedna linijka np. Player.position += MovingPlatform.delta_position;
Użyj albo przeanalizuj controller z https://github.com/prime31/CharacterController2D
Chyba posiada on obsługę ruchomych platform.
void OnCollisionEnter(Collision col)
{ if(col.gameobject == "platforma") this.transform.position += col.transform.deltaposition}
i dodaj to do gracza. dawno w unity nie siedzialem, wiec moze trzeba bedzie pokomibionawc z oncollisionenter, no i pozniej pewnie uzyc OnCollisionExit, no ale jak bd mial jakis problem to wolaj;)