Napisano 16 Kwiecień 201311 l Witam, jako że z unity nie jestem jakoś specjalnie obyty chciałbym was zapytać, w jaki sposób mogę za pomoca jednego kliknięcia ukryć / pokazać wiele obiektów jednocześnie. Chodzi o to, że mam salę z 300 krzesłami, które muszę wyświetlać w różnych ustawieniach. Próbowałem wcielić wszystkie krzesełka pod box, i w nim włączać / wyłączać opcje renderowania ścian, ale to działa tylko na tego boxa :/. Jeśli ktoś wie jak to zrobić, proszę o pomoc :) pozdrawiam.
Napisano 16 Kwiecień 201311 l Zamiast włączać/wyłączać MeshRenderera możesz dezaktywować cały obiekt (od Unity 4 dzieci dziedziczą status "Active"). Możesz jeszcze wyszukać sobie wszystkie MeshRenderery w dzieciach za pomocą gameObject.GetComponentsInChildren(), a potem pojechać po wszystkich elementach zwróconej tablicy i je wyłączyć. Aktywacja obiektu nadrzędnego będzie chyba najprostsza.
Napisano 16 Kwiecień 201311 l Autor Wrócę do domu to będę szukał i kombinował (tak na szybko wiem tylko że mój obiekt nadrzędy to ściany sali, reszta wypozażenia to stoły, krzesła, framugi itp. :/. Ps. czy w unity jest coś takiego jak nature painter w Quest3d ? Chodzi o stworzenie wielu obiektów, które sa ... instancjami istniejącego obiektu. Problem w tym, że z tymi 300 krzesełkami scena ma 50 mb :/ To troche za dużo jak na web playera ;p. Pozdr.
Napisano 16 Kwiecień 201311 l Możesz zrobić jeszcze jeden obiekt nadrzędny - rodzica, który będzie trzymał tylko krzesła. Przy wrzucaniu na scenę kopii jednego modelu Unity zapisuje tylko współrzędne obiektu. Pozostałe dane istnieją tylko jako referencja do pliku źródłowego. Czy 50 MB to już wielkość builda webowego, czy wersji PC? Przy eksporcie do WebPlayera zwykle zasoby dość mocno się kompresują.
Napisano 16 Kwiecień 201311 l Autor arev dzięki kurde wielkie... kompilowałem sobie exe, popaczyłem na rozmiar i zonk. Po kompilacji dla weba 2 mb xD Dzięki chłopie, bo bym tak siedział i myślał co jest nie tak xD Teraz będe "znikał" obiekty... Poradziłem sobie (wujek google pomógł) var ObjectToDeactivate = GameObject.Find("nazwaObiektuRodzica"); ObjectToDeactivate.gameObject.SetActive(false); // false grupa zniknie, true - pojawi sie (wraz z "potomkami"). Edytowane 17 Kwiecień 201311 l przez stobolewski
Napisano 18 Kwiecień 201311 l Autor No niestety, ale muszę prosić o pomoc :/. W scene unity mam: 2x GUI texture, które robią za przyciski (podpinam pod nie 2 skrypty): showKinowo function OnMouseDown () { var OTD2 = GameObject.Find("ustawieniaKinowe"); OTD2.gameObject.SetActive(true); var OTD3 = GameObject.Find("ustawieniaSzkolne"); OTD3.gameObject.SetActive(false); } oraz showSzkolnie function OnMouseDown () { var OTD2 = GameObject.Find("ustawieniaKinowe"); OTD2.gameObject.SetActive(false); var OTD3 = GameObject.Find("ustawieniaSzkolne"); OTD3.gameObject.SetActive(true); } Po uruchomieniu sceny gdy kikam ikone z podpiętym sktyptem showSzkolnie wszystko działa, w 2 przypadku nic sie nie dzieje :/. Próbowałem wywołać tę funkcję w onUpdate, ale też nic z tego nie wyszło ;p. Czy ktoś może mi coś podpowiedzieć ?
Napisano 25 Kwiecień 201311 l Hej, Przede wszytkim bardzo nie wydajnie jest to napisane - powinienes sobie referencje zcashowac podczas inicjacji. Takze lepiej wylaczac samo guiTexture. Tutaj masz jakby to moglo wygladac IMHO (C#): using UnityEngine; using System.Collections; public class ShowHideButtons : MonoBehaviour { private GUITexture _buttonKinowe; private GUITexture _buttonSzkolne; void Awake () { _buttonKinowe = GameObject.Find("ustawieniaKinowe").guiTexture; _buttonSzkolne = GameObject.Find("ustawieniaSzkolne").guiTexture; } void OnMouseDown () { _buttonKinowe.enabled = ! _buttonKinowe.enabled; _buttonSzkolne.enabled = ! _buttonSzkolne.enabled; } } Ten skrypt umiesc na buttonie, ale tylko na jednym, wowczas on bedzie wylaczal jedna teksture a wlaczal druga. Na poczatku w scenie powinna byc jedna GUITexture wylaczona a druga wlaczona, aby na zamiane sie wlaczaly. Pozdrawiam.
Napisano 25 Kwiecień 201311 l Autor bolitic, dzięki za pomoc :) Co prawda już sobie poradziłem z problemem poprzez zamianę GUI Texture na normalne buttony. Dodałem też kilka GUI Text (tak to się chyba zwie) i klika check boxów, tak że w sumie wyszło całkiem ładne "małe" menu. Obecnie mam już tylko jeden skrypt ze zdefionowanymi "stałymi", do których podpięte są poszczególne ustawienia sal. Trochę googlowania i poszło :).
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto