Domnilor, vreau să vă întreb cum se poate realiza accelerarea și inhibiția? Am nevoie de un set de viteză netedă permis de la 0 la 50 de unități, este necesar ca atunci când obiectul este rotit, nu continuă să se miște inerția în aceeași direcție, iar vectorul de viteză își schimbă și direcția. Obiectul este într-un spațiu fără aer, astfel încât nu există nici o frecare și gravitate, în principiu, obiectul nu poate fi frânat. Voi fi extrem de recunoscător pentru ajutor.
Există două modalități de a rezolva, folosind fizica unității, sau matematica și legile fizice.
Într-o unitate, puteți aplica forța asupra obiectului, dați-i masă și rezistență, aplicați contra-forțe, ceea ce va stinge mișcarea.
Sau deschideți un manual de fizică și rezolvați formulele de mișcare. Îmi place mai mult această metodă.
. [email protected];
Consultări plătite, programarea proiectelor dvs. Unity3d, C #, IOS, Android.
Text ascuns: arată
Cum de a face acest lucru, teoretic clar pentru mine, am nevoie de un exemplu real, pentru a scrie pe C # și să semneze cu el toată ziua 4) Am o operație specifică viteza obiectului: rigidbody.velocity = transform.up * Accel în Update'e. Acest lucru este necesar ca și pentru a determina valoarea pentru Accel variabilă, astfel încât, atunci când apăsați-l schimbă 0-50 în 10 secunde. Am încercat să dau seama care operatorii și funcțiile pe care trebuie să le utilizați pentru a pune în aplicare acest lucru, dar nu există nici un disc de formare a imaginii nu poate fi găsit și totul este tăcut. Sau puteți trece prin forța de impact așa cum sa propus în prima versiune a ta, ci pentru a le stinge direcția opusă forțelor de vector în timpul rotației, deși mi se pare mai hemoroidale. Ca alternativă posibilă aplicarea unei forțe la un obiect, și apoi rândul său, doar vectorul impactului său? Dacă da, cum? Trebuie să știu exact operatorii și construcțiile prin care se poate face acest lucru. Vă mulțumim anticipat
Pentru alunecare și încetinire, folosiți materialul fizic (5 exemple sunt în ansamblurile standard).
Cum să aplicați forța în direcția opusă?
gameObject.Rigidbody.AddForce (- transofrm.forward * tvoya_sila);
gameObject.Rigidbody.AddForce (- rigidbody.velocity * tvoya_sila); // aici forța ar trebui să fie mai mică de 1
Dacă sunt eu. desigur, nu a greșit
Senks) Puteți să sugerați în continuare dacă direcția vectorului forței aplicate se schimbă? Și apoi am obiectul de inerție continuă să se deplaseze lateral după întoarcere Sau în timpul turnului va trebui să stingă forța și să o aplice din nou într-o nouă direcție?
înainte - direcția în care se uită obiectul.
Pentru a muta obiectul în mod direct și nu în lateral, atunci trebuie să redirecționați cumva viteza spre înainte
Dacă setați în mod direct viteza, care este, așa cum am prin rigidbody.velocity = transform.up * Accel plasate în actualizare rândul său trece în mod corect, dar dacă utilizați același AddForce, apoi la stânga la forța reziduală, care după rândul său, pentru un timp pentru a muta obiecte la rata anterioară. Oferi pentru a da mai întâi prin accelerare AddForce, o schimbare a vitezei atunci când cotitură solid rigid? Și ce să te întorci dacă overclockarea obiectului nu este încă terminată? Aceasta este, forța nu a fost complet aplicată până la capăt, iar obiectul sa transformat. Viteza nu rămâne pe valoarea obținută la momentul întoarcerii?