Aktywne Wpisy
![Mantusabra](https://wykop.pl/cdn/c0834752/6ca8761438ed8cef9d8ad8bc7ee3db3903ef122910f45f6b6f04612caddab57c,q60.jpg)
Mantusabra +533
Każdemu kto zaplusuje wpis narysuję jego avatar w paincie. Ehh nudzi mi się( ͡° ͜ʖ ͡°)
![wfyokyga](https://wykop.pl/cdn/c0834752/fc1df860267eef9195884874c97a8ce34e2d35ce6b30951b45b2517115b44699,q60.jpg)
wfyokyga +67
I ciach, złamane żebro lub obojczyk. Guwniak 1-0 Matka
![wfyokyga - I ciach, złamane żebro lub obojczyk. Guwniak 1-0 Matka](https://wykop.pl/cdn/c3201142/8e0d0a32fc0f210fd1266169eb74d3f312ad41ee326d27051afae12a9246c14c,w150.gif)
źródło: temp_file9196269808227903488
Pobierz
To, co chcę uzyskać to danie możliwości użytkownikowi zdefiniowania własnego dowolnie złożonego edytora dla customowego typu, który chcemy edytować i tu pojawił się problem natury: w jaki sposób napisać kod takiego edytora, który może przyjąć dowolną formę i akcje, jednocześnie będąc konfigurowalnym z pliku tekstowego bez konieczności tworzenia pluginu w .NET-cie do aplikacji?
Rozwiązanie widzę takie: stworzyć bazową kontrolkę edytora i bazowe edytory do kilku typów JavaScriptowych, które to dodają elementy UI do bazowej kontrolki i bindują akcje na edycję i update propertiesa (czyli reagują na serializację i deserializację JSONa).
Ale ale! Co, gdy ktoś musi zrobić edytor np. ścieżek, czy innego rodzaju bardziej niecodziennych danych, czego nie da się złożyć z edytorów bazowych typów? Ano mam na to patent! ^^ użytkownik będzie mógł zarejestrować swój własny customowy edytor napisany w JSie i wyświetlać się go będzie w nowym okienku z mini-browserem (geckofx)! Jak to będzie działać? Rozpatrzmy taki przypadek (pardon, że robię z Was debugowe kaczki :D):
1. developer stworzył skrypt, który jako jeden z atrybutów jest customowego typu: MovementPath;
2. Nie da się tego w żaden sposób złożyć z edytorów bazowych, więc tworzy sobie jako asset kodu skrypt MovementPath.editor.js i w tym pliku pisze kod który ma zawierać takie funkcjonalności:
a) funkcja initialize() przyjmuje JSON z danymi do zwizualizowania ścieżki i buduje UI do tego;
b) funkcja update() aktualizuje wizualizacje oraz dane (poprzez np. reakcję na input);
c) funkcja result() zwraca zedytowane dane do aplikacji podczas zamykania okienka edytora ścieżek.
Nom, a edytory do typów, które da się złożyć z bazowych (np. vector jako kilka kontrolek floatów) będzie się po prostu opisywało poprzez konfigurację w pliku JSONa (np. Vector3.editor.json) - i wszystko powinno banglać jak ta lala <3
Jakieś przemyślenia co do tego podejścia? :)
#playgate #gamedev #playcanvas
Komentarz usunięty przez autora
Większość korzysta z własnych/gotowych/acotosompropertisy skryptów. Masz jakąś betę do przejrzenia?
W czym znajdujesz do tego zastosowanie?
propertiesy w kontekscie edytora gier oznaczaja atrybuty obiektu, ktore mozna modyfikowac w aplikacji.
'problem' w tym, ze to sie swietnie przyjelo w Unity - dali developerom mozliwosc tworzenia wlasnych edytorow, dzieki czemu takie rzeczy jak edytor dla propertiesow typu MovementPath sa realne i umozliwia to edycje sciezki przez rysowanie jej, miast wpisywanie kolejno pozycji kazdego punktuvsciezki do listy. i taka mozliwosc jest cudowna w skutkach, edytor gier powinien byc piakownica
dodam to jako opcję dla zaawansowanych, bo docelową grupą odbiorców są użytkownicy JSa, więc zmuszanie ich do uczenia się C# nie wchodzi w grę, ale jako opcja na zaawansowane edytory jest extra! :D