Wpis z mikrobloga

#unity #unity3d #gamedev

Czy jest możliwe aby ustawić różne kolory mgły na jednym terenie? Tzn. że będąc w jednym miejscu jest ona niebieska, w innym czerwona, a w jeszcze innym żółta? Dopiero zaczynam zabawę z Unity więc proszę o wyrozumiałość. I tak, szukałam już w Googlach :P
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@denis-szwarc: No właśnie miałam kilka pomysłów i postawiłam na ten, bo wydawał się najłatwiejszy, ale nie wiedziałam, czy za bardzo nie kombinuję i czy może nie ma jakiegoś łatwiejszego rozwiązania. A podpowiesz mi jak zrobić, żeby kolor mgły przechodził płynnie z jednego w drugi? Bo póki co to jest taki nagły przeskok ( ͡° ʖ̯ ͡°)
  • Odpowiedz
@edcba: Ja bym to zrobił tak, że bym zrobił specjalne gameobjecty z własnym skryptem mgły, który zawiera kolor. Kamerze bym dał oddzielny skrypt, który pobiera wszystkie te obiekty i dynamicznie sprawdza odległość od każdego (można użyć sqrMagnitude, żeby było wydajniej), następnie przedstawienie tych odległości w proporcji i kolor ustawia się w proporcji odległości każdego z nich.
  • Odpowiedz
@Radeg90:

następnie przedstawienie tych odległości w proporcji i kolor ustawia się w proporcji odległości każdego z nich.

A to w jaki sposób?
  • Odpowiedz
@edcba: Zsumować wszystkie odległości, a następnie podzielić każdą z nich przez sumę, wtedy otrzymasz proporcję każdej z odległości. Następnie pobierasz każdy kolor mgły i mnożysz go przez (1 - proporcję) i sumujesz te kolory.
  • Odpowiedz
@edcba: zrobione? o takie coś potrzebne było?

// dołącz ten skrypt do obiektu z meshem, do transformu player podłącz gracza i poruszaj się wokół obiektu
MeshRenderer rend;
public Transform player;
public float maxDistance
  • Odpowiedz
@edcba
A nie da się shadera w unity ruszyć tak, że w zależności od pozycji ustawiasz kolor w pixelshaderze? Albo nałożyć na to jakaś teksturę/mapę takiego koloru?
  • Odpowiedz