Hogy lehet unity 19-be a UI-ra tenni 3D-s objektumot?
Ugye próbáltam render texture-rel. De az véleményem szerint nem a megfelelő erre a célra, mert egy szimpla ikonra van szükségem. Így teljesen felesleges a textúra real time frissítése, arról nem is beszélve hogy eléggé lassítja a projektet, ha minden kis item ikonnak van egy külön kamerája, meg értitek.
Próbáltam kiszedni a render texture-ből a textúrát, de nem sok sikerrel. Arra gondolva ezzel hogy a program indulásakor az összes 3D-s tárgyat "lefotózom", majd eltárolom a memóriába. De a Texture2d-re való átalakítás nem igazán működött. Egyébként ezt a ReadPixels-es módszerrel próbáltam kivitelezni.
Próbáltam azt, hogy a render texture-t megfosztom a kamerájától. Hátha beáll arra a képre ami nekem kell. De ugye ekkor elvesztte azt a képet amit tárolt.
Gondolkoztam azon, hogy mivel a RawImage-eket lehet forgatni és eltolni, ezzel jól megjeleníthetem a dolgokat. Ez az egyszerűbb objektumoknál okés. De a bonyolultabbaknál macerásabb lenne.
Nem szeretném magam megrajzol i az ikonokat, mert nem szeretnék egy textúracsere után új ikont rajzolni.
Valaki tud valamit ajánlani, hogy a unity csak megcsinálja nekem a képet, majd a kép tárolása után maradéktalanúl menjen a süllyesztőbe, vagy hogy hogyan lehet költséghatékony módon 3d-s objektumokat UI-ra tenni?
Rendertexture nem frissül mindig, csak ha úgy állítod be hogy mindig frissítsen. Az alapvető gondolatmeneted jó volt, ebből ki tudsz indulni.
A második hozzászólást nézd, 2017 ből, ne azt amelyiket elfogadták 2010 ben - ahogy van nem lesz jó, mert screenshothoz van, de arra tökéletes hogy lásd mit rontottál el. Kódból hozd létre a RenderTexture t, a kamerát meg úgy állítsd be hogy csak az adott rétegeket renderelje(a cuccokat amikről képet akarsz meg rakd arra a rétegre persze), depth clear legyen bekapcsolva - ha akarsz alfát, de gondolom akarsz. camera.Render() metódussal fogja csak kirajzolni, nem minden frameben, ezt ennél gyorsabban nem tudod megcsinálni.
És képes rá, és működik normálisan. Kiderült, hogy a Camera.Render() metódus hiánya okozta a gubancot.
Köszönöm.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!