Nieobracający się model 5620 9

O temacie

Autor Adanos

Zaczęty 13.07.2013 roku

Wyświetleń 5620

Odpowiedzi 9

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Kolejny dziwny problem unitowy.

Chcę obrócić obiekt (płaszczyzna z teksturą) dodany za pomocą skryptu.

W skrypcie transformacji metoda Update wygląda tak:
void Update()
   {
      if (Input.GetMouseButtonDown(1))
      {
         float h = horizontalSpeed * Input.GetAxis("Mouse X");
         float v = verticalSpeed * Input.GetAxis("Mouse Y");
         transform.Rotate(h, v, 0);
         //transform.RotateAround(transform.position, transform.up, Time.deltaTime * 90f); // to też nie działa
      }
   }
W inspektorze wartości x, y przy rotacji się zmieniają, niestety obiekt nie obraca się. O co może chodzić jeszcze Unity?


Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Nieobracający się model
#2 2013-07-13, 21:33(Ostatnia zmiana: 2013-07-13, 21:34)
Po dodaniu obiektu tak on wygląda w inspektorze:


I dalej nie chce się obracać.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ok, GUITexture jest problemem, bo nie można wtedy obracać. Rozwiązaniem tego jest
renderer.material.mainTexture = texture;
Niestety, teraz jest inny problem, a mianowicie jak ustalić rozmiar nowego obiektu. Ale to może jutro, bo idę spać :D


Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Nieobracający się model
#5 2013-07-14, 08:59(Ostatnia zmiana: 2013-07-14, 15:26)
O długość, szerokość.

EDYCJA
Ok, nieważne. Można by było się bawić localScale, ale to nie jest to, czego bym oczekiwał. W zasadzie stwierdzam, że Unity3D nie nadaje się zbytnio do robienia gier 2D, bo trzeba zmienić cały punkt widzenia robienia gier 2D. :D

Sawik

Sawik

Użytkownicy
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Użytkownicy
  • Rebel
Unity 3D nie nadaje się w ogóle do robienia gier 2D.  Są to gry 3D z perspektywą 2D.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Nieobracający się model
#7 2013-07-15, 00:14(Ostatnia zmiana: 2013-07-15, 00:56)
Oczywiście że się nadaje, są nawet specjalne nakładki które to bardzo ułatwiają ;p
Wystarczy odpowiednio skonfigurować kamerę, zrobić skrypt rysujący sprite'y i możesz sobie ustawiać je na ekranie z pixelową precyzją. Sprite'y są wyświetlane jako plane'y z teksturą w widoku ortogonalnym. To JEST 2d. To że silnik i karta graficzna mają możliwość wyświetlania także 3d w niczym nie przeszkadza.

Cała kategoria zasobów do tworzenia gier 2d w Unity: https://www.assetstore.unity3d.com/#/category/142
https://www.assetstore.unity3d.com/#/content/908
http://learnunity3d.com/2011/03/zombieville-usa-unity-2d-post-mortem/
https://www.3dmotive.com/f106901
Itd.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Rzuciłem okiem na Orthello2D. Ale niestety przy
OTSprite sprite = new OTSprite();
sprite = OT.CreateObject(OTObjectType.Sprite).GetComponent<OTSprite>(); //sprite jest nullem, mimo że wyżej jest inicjowany
wywala
NullReferenceException: Object reference not set to an instance of an object
FoodView.InsertFood (.Food food) (at Assets/Scripts/FoodView.cs:60)
FoodView.OnGUI () (at Assets/Scripts/FoodView.cs:40)

Ktoś wie, o jakiej magii zapomniałem lub nie wiem? Jak mam zainicjować ten obiekt?

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ok, tą magią jest prefabrykat.

Cholera, nie ma lekko :D


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry