Zdravsvtuyte, situația este următoarea: încerc să rotesc un obiect în jurul axei mele cu ajutorul săgeților. dar, în același timp, valorile rotației sunt modificate numai cu un anumit pas spre stânga sau spre dreapta. Nu înțeleg ce înseamnă deja o oră. codul de mai jos:
- void Actualizare ()
- // rețineți acest câmp, pentru o optimizare convenabilă a vitezei de mișcare / rotație
- viteza flotorului = 1;
- // rândul său, la stânga
- dacă (Input.GetKey (KeyCode.LeftArrow)) TurnPlatform (-speed);
- // la dreapta
- dacă (Input.GetKey (KeyCode.RightArrow)) TurnPlatform (viteză);
- // deplasare înainte
- dacă (Input.GetKey (KeyCode.UpArrow)) MovePlatform (viteză);
- // mergeți înapoi
- dacă (Input.GetKey (KeyCode.DownArrow)) MovePlatform (-speed);
- >
- // mișcarea platformei
- void MovePlatform (viteza plutitoare)
- float posX = gameObject.transform.position.x + viteză;
- float posY = gameObject.transform.position.y;
- float posZ = gameObject.transform.position.z;
- gameObject.transform.position = Vector3 nou (posX, posY, posZ);
- >
- // rotiți platforma
- void TurnPlatform (viteza flotorului)
- // rețineți poziția curentă, cu excepția lui Y, căreia i se atribuie poziția curentă +/- gradul de rotație
- float rotX = gameObject.transform.rotation.x;
- float rotY = gameObject.transform.rotation.y + viteză;
- float rotZ = gameObject.transform.rotation.z;
- gameObject.transform.ro = Quaternion.Euler (rotX, rotY, rotZ);
- >
Paul Siberdt a scris: [3] utilizarea numelor de variabile în parametrii funcției în parametrii funcției vă strălucește cu confuzie. Ca o soluție - apelați, de exemplu, cu un subliniere inferioară: _speed
Permiteți-mi să exprim punctul meu de vedere (și nu numai). Există un astfel de lucru ca și Convențiile Codului - acestea sunt convenții pentru o anumită limbă despre stilul de scriere a codului. Ele sunt pentru aproape fiecare limbă. Ele sunt cât se poate de stricte pentru Java și C #. Pentru aceste limbi, acordurile sunt scrise nu doar ca un set de recomandări, ci ca un set urgent de recomandări pentru fiecare aspect al stilului de cod.
Deci, despre numirea variabilelor în sharpe (acest lucru nu este chemarea mea de a urma aceste reguli, dar și IMHO inclusiv):
- Variabilele publice și protejate încep cu o literă principală și nu folosesc în sine caractere speciale (public int SomeValue;)
- Proprietățile, indiferent de domeniul de aplicare, încep cu o majusculă și nu folosesc personaje speciale în sine (private dublu SomeDouble)
- Variabilele private din interiorul clasei utilizează sublinierea de la început și încep cu o mică literă și nu folosesc caractere speciale în alte locuri (string personal _someString;)
- Variabilele locale încep cu o mică literă și nu utilizează în sine niciun caracter special (public void SomeFunc ()).
Acestea nu sunt extrase din acord, ci o scurtă reluare.
Dacă ați pus Resharper-ul, dar nu opriți evidențierea acordurilor, atunci codul va fi plin de sublinieri albastre. Acest lucru este enervant, iar acest lucru este corect (din nou, IMHO).
Dar pentru a lucra înainte și înapoi cu quaternioane, sprijinindu-se pe colțurile evelle cu artefacte periculos de imprevizibile.
Singurul lucru care poate fi făcut mai dureros este de a crea rotații de evelle de-a lungul unei axe, de a obține quaternionele lor și de a le utiliza deja exclusiv. Care, apropo, am făcut în ultimul [al patrulea] punct al răspunsului meu.
În general, nu aș recomanda să joc cu unghiurile lui Euler, fără să le înțeleg.
Merită de câteva ori (mai bine - câteva zile la rând înainte de a merge la culcare) pentru a citi acest lucru și acest lucru. Desigur, dacă există dorința de a le stăpâni. Fii atent, brinefak (nu în sensul numelui YAP)!
Johnson a apărut ca rezultat al împărțirii prin nul. Krivokoder recidivist. Acesta mușcă.
Este bine ca chirurgii din spital să nu fie la fel ca noii veniți în acest forum. A venit să-și scoată unghia din mână și au tăiat ouăle.
ProgrammerNotFoundException pe linia 0!