commit 15802b2fe6f0003ad3c5555b7db020f88c0ed8bf Author: duszekjk Date: Sat Mar 13 17:35:25 2021 +0100 cw1 diff --git a/Anabaenaflosaquae_EPA.jpg b/Anabaenaflosaquae_EPA.jpg new file mode 100644 index 0000000..395e38b Binary files /dev/null and b/Anabaenaflosaquae_EPA.jpg differ diff --git a/Screenshot 2021-03-13 at 14.29.10.png b/Screenshot 2021-03-13 at 14.29.10.png new file mode 100644 index 0000000..28535d1 Binary files /dev/null and b/Screenshot 2021-03-13 at 14.29.10.png differ diff --git a/Turtle-animation-20210312091611500.gif b/Turtle-animation-20210312091611500.gif new file mode 100644 index 0000000..2d01b87 Binary files /dev/null and b/Turtle-animation-20210312091611500.gif differ diff --git a/Turtle-animation-20210312091653497.gif b/Turtle-animation-20210312091653497.gif new file mode 100644 index 0000000..2d01b87 Binary files /dev/null and b/Turtle-animation-20210312091653497.gif differ diff --git a/Turtle-animation-20210313140337212.gif b/Turtle-animation-20210313140337212.gif new file mode 100644 index 0000000..2d01b87 Binary files /dev/null and b/Turtle-animation-20210313140337212.gif differ diff --git a/Turtle-animation-20210313143359379.gif b/Turtle-animation-20210313143359379.gif new file mode 100644 index 0000000..2d01b87 Binary files /dev/null and b/Turtle-animation-20210313143359379.gif differ diff --git a/Turtle-animation.gif b/Turtle-animation.gif new file mode 100644 index 0000000..2d01b87 Binary files /dev/null and b/Turtle-animation.gif differ diff --git a/Unityscreen.png b/Unityscreen.png new file mode 100644 index 0000000..4667355 Binary files /dev/null and b/Unityscreen.png differ diff --git a/Von_Koch_curve.gif b/Von_Koch_curve.gif new file mode 100644 index 0000000..817590c Binary files /dev/null and b/Von_Koch_curve.gif differ diff --git a/Wirtualne światy ĆW1.html b/Wirtualne światy ĆW1.html new file mode 100644 index 0000000..e93d4c3 --- /dev/null +++ b/Wirtualne światy ĆW1.html @@ -0,0 +1,1419 @@ + + + + +Wirtualne światy ĆW1 + + +

Ćwiczenia 14.03

Hello World w Unity

(Pliki https://git.wmi.amu.edu.pl/andkok/Unity_artifitial_world/src/branch/cw1/materiałyHelloWorld )

  1. Utwórz nowy projekt

    • Otwórz Unity Hub

    • Wybierz NEW

    • 3D, wpisz nazwę i wybierz lokalizacje na twoim komputerze. Zatwierdź klikając CREATE

  2. Import materiałów, tworzenie terenu i prostych krztałtów

    Po środku ekranu jest podgląd sceny (karta Scene). Żeby się w nim przemieszczać klikamy Q i wtedy możemy przesuwać obraz myszką (kliknięcie na prawy przycisk myszy do obracania widoku). Klawisz W zmienia w tryb przesuwania obiektów, a klawisz E jest do obracania obiektów i R zmiany rozmiarów.

    W dolnej części ekranu, w karcie Project przechowujemy wszystkie modele, tekstury, skrypty i inne potrzebne elementy

    • W folderze Assets kliknij prawym przyciskiem myszy i z menu wybierz Create -> Folder. Nazwij folder tekstury

    • Otwórz ten folder i przeciągnij do niego wcześniej pobrane tekstury

      Po lewej stronie jest karta Hierarchy. W niej znajdują się wszystkie obiekty, które są w tworzonej scenie. Tam się dodaje nowe elementy sceny i ustawia zależności pomiędzy elementami

      Teren

    • Kliknij prawym przyciskiem myszy w polu Hierarchy i wybierz 3D Object -> Terrain

      Po prawej stronie mamy karte inspector w której są ustawienia zaznaczonego obiektu

    • Dodaj teksturę terenu

      • W Inspektorze przy zakładce Terrain wybierz drugą opcje (ikonka pędzelka)

      • Wybierz z menu Paint Texture

      • Kliknij Edit Terrain Layers -> Create Layer

      • Dodaj trzy tekstury

      • Urozmaić teren zaznaczając tekstury i malując przy pomocy wybranych poniżej pędzli

    • Zmień wysokości terenu

      • W Inspektorze przy zakładce Terrain wybierz drugą opcje (ikonka pędzelka)

      • Wybierz z menu Raise or Lower Terrain

      • Podnosi się teren "malując" po obiekcie terenu, żeby teren obniżyć należy trzymać wciśnięty shift

      Proste kształty

    • W karcie Hierarchy kliknij prawym przyciskiem myszy i wybierz 3D Object -> Sphere

    • żeby nadać kuli koloru utwórz materiał

      • Dodaj teksture SphereNormals do tekstur i Inspektorze wybierz texture type: Normal Map, zaznacz create from grayscale, wrap mode: mirror

      • W folderze Assets utwórz folder Materiały i kliknij prawym przyciskiem myszy i wybierz Create -> Material

      • Wybierz kolor Albedo i dodaj teksture do "Normal Map"

      • Przeciągnij materiał na kulę

    • żeby na kulę działała grawitacja i kolizja dodajemy do niej Rigid Body (Add Component -> Rigidbody), i w Constrains - Freeze rotation zaznacz wszystkie (żeby nam się kula nie stoczyła)

  3. Dodawanie skryptu C#

    W Unity za większość akcji i różnych interakcji odpowiadają skrypty C#

    • Utwórz folder skrypty i w nim Create -> C# Script, nazwij go Player.

    • Otwórz ten skrypt i Przed funkcją Start dodaj zmienne:

    • wewnątrz funkcji Update wklej:

    • Zamień wartości wektora ruchu i funkcji obrotu

    • Przeciągnij skrypt na object Player lub w Inspektorze obiektu Player wybierz Add Component i dodaj Player

  4. Ustawianie oświetlenia (globalne)

    • Ustawienia oświetlenia są w Window -> Rendering -> Ligthning, można je sobie przypiąć w dowolnym miejscu (ja przesuwam je koło inspektora)

    • Dodajemy nowe ustawienia (New Ligthning Settings)

    • Można zmienić Ligthmapper na Progressive GPU

    • Po dostosowaniu ustawień klikamy Generate Lightning (to może chwilę potrwać, nawet do kilku minut)

  5. Tworzenie wielu elementów skryptem z ustawianiem ich za pomocą macierzy (Clock)

    • Utwórz objekt tarczy zegara (tekstura , zamień przy tworzeniu materiału Rendering mode na Transparent)

    • Utwórz obiekt, który posłuży jako szablon wskazówek zegara

    • Dodaj kod ustawiający zegar do obiektu tarczy zegara

    • Zaznacz w inspektorze przy Clock Hand wcześniej przygotowany objekt

    • Dodaj odpowiednie przekształcenia, tak aby duży zegar pokazywał czas i mały zegar pokazywał czas od uruchomienia aplikacji

L-System

W tej części zajęć skupimy się na tworzeniu L-Systemów i wykorzystaniu ich do reprezentacji zjawisk przyrodniczych.

Przypomnienie +L-System to system przepisywania i gramatyka formalna. Składa się z: symboli, które tworzą ciągi znaków; reguł produkcyjnych, które opisują na co należy przepisać dany znak; aksjomatu, czyli początkowego ciągu znaków; i mechanizmu, który tłumaczy ciąg znaków na reprezentacje geometryczną

Bazą dla tych zajęć jest książka Algorithmic Beauty of Plants dostępna za darmo pod linkiem lub w wyższej jakości

Składnia L-Systemów

Projekt zawiera bibliotekę, która interpretuje L-Systemy. Ich definicję pobiera z oddzielnego pliku. Ich składnie opisuję definicja L-Systemu opisującego rozwój bakterii Anabaena znajduje się w projekcie pod ścieżką Assets\LSystem\Anabaena.txt i wygląda następująco:

Plik należy zacząć od linii #axiom, następnie w następnej linii zamieścić ciąg początkowy. Później pomiędzy liniami #rules i #end rules umieścić instrukcje przepisywania według zasady: +<znak przepisywany>-><wynik przepisania> +każdy znak przed strzałką i po strzałce (z wyjątkiem reguł o których później) jest traktowany jako następny symbol. W przypadku kilku reguł, które dotyczą tego samego symbolu wykona się ta, która jest wyżej w pliku. Między reguły można dodawać komentarze, znakiem komentującym jest #. Jeżeli znak nie posiada żadnej reguły, która by go opisywała, to nie jest on zmieniany.

Odpal scenę LSystemFromFile, zaznacz LSystemController w panelu po prawej. Po lewej w polu L System Path wpisz Assets\LSystem\Anabaena.txt kliknij Load File, by załadować LSystem. Następnie Evaluate, by wykonać przepisanie. W scenie wyświetlą się obiekty reprezentujące symbole a w konsoli wyświetli się wynik przepisania.

Składnia wszystkich rozszerzeń jest zaprezentowana w pliku SampleLSystem.txt w tej chwili niektóre reguły mogą byc niezrozumiałe, ale może się on przydać później jako wzorzec.

Turtle Graphics

Turtle Graphics jest metodą tworzenia grafiki komputerowej, wykorzystuje kursor (tytułowego żółwia) wykonujący instrukcje w przestrzeni lokalnej.

https://en.wikipedia.org/wiki/Turtle_graphics

L-Systemy można interpretować za pomocą Turtle Graphics, poprzez przypisanie każdemu symbolowi instrukcji jaką ma wykonać żółw. Następnie żółw będzie wykonywał kolejne instrukcje czytając napis od lewej do prawej.

Na początek zaczniemy od prostej reprezentacji, gdzie + będzie oznaczał w kierunku zgodnym z ruchem wskazówek zegara o wskazany kąt, natomiast - w przeciwnym. Kąt zwyczajowo oznacza się grecką literą $\delta$. Każdy inny symbol będzie oznaczał idź prosto o 1.

Odpal Scenę LSystem2D, załaduj plik Sierpinski.txt, ustaw kąt na 60 stopni i wykonaj kilka kroków.

Zadanie

napisz Lsystem, który będzie rysował gwiazdkę kocha

  1. Krzywa kocha:

Opis:

  1. Podziel linię na 3 równę części
  2. Przy środkowej części narysuj równoboczny trójkąt zwrócony na zewnątrz
  3. Usuń środkową część pierwotnej lini

Musimy z jednej lini zrobić 4 nowe, z czego pierwsza i ostatnia idą w tym samym kierunku, a dwie środkowe idą pod innym kątem (podpowiedź: dając dwa razy + lub - możesz zwiększyć kąt)

  1. W pierwszym kroku L-Systemu utwórz trójkąt

Bracketed L-systems

W podstawowej wersji L-Systemy są pojedyńczym ciągiem znaków, by uzyskać możliwość tworzenia rozgałęzień wprowadzamy dwa specjalne znaki [ oraz ] pierwszy mówi, żeby zapamiętać obecny stan, drugi oznacza by wrócić do stanu zapamiętanym przy ostatnim znaku [. Przykładowo ciąg symboli F[+FFF][-F]FF dla $\delta=90$ będzie reprezentowany następująco +obraz

Zadanie

Stwórz systemy a i e:

Screenshot 2021-03-13 at 14.29.06 Screenshot 2021-03-13 at 14.29.10

Pisanie własnej interpretacji LSystemów

Wróćmy do sceny LSystemFromFile W tej scenie zamiast kresek pojawiają się figury reprezentujące komórki (czerwona lewa, zielona prawa, niska młoda, wysoka dorosła). Otwórz skrypt AnabeanaTurtle.cs, który odpowiada za rysowanie. Zawiera on klasę AnabeanaTurtle dziedziczącą po TurtleLSystem. TurtleLSystem jest klasą abstrakcyjną, wymaga zdefiniowania funkcji initLiteralInterpretation, w której należy opisać jak interpretować symbole.

Żeby tego dokonać należy uzupełnić słownik turtleInterpretation, którego kluczami są opisywane symbole jako stringi. Natomiast wartościami są funkcje, które przyjmują jako argument tablicę parametrów danego symbolu (o tym później) a zwracają Krotkę, której pierwszym elementem jest rysowany obiekt, natomiast drugim transformacja, jaką wykona żółw. Powyższym przykładzie obiekty są czytane z modeli a transformacja zawsze jest taka sama, czyli translacja o wektor (0.1,0,0) i skalowanie o wektor (0.1,0.1,0.1). (Skalowania nie są pamiętane przez żółwia)

Te funkcje są wykorzystywane przez żółwia do interpretacji ciągu symboli. Przykładowo LRr zostanie zinterpretowany następująco:

Zadanie

Jak wyszukasz w internecie obrazki Anabaeny, zobaczysz, że są one często powykręcane, dodaj do macierz przekształceń obroty w osi Y o losowy kąt pomiędzy -20 a 20 stopni.

Parametryczne L-Systemy

Parametryczne L-Systemy operują na symbolach parametrycznych znakach, czyli takich, które posiadają 0 lub więcej parametrów rzeczywistych. Pozwala to przechowywać różne wewnętrzne stany obiektów. Przykładowo dla modelu Anabeany powyżej rozróżniamy tylko 2 stany, młody i dorosły. Dzięki parametrycznym L-Systemom możemy opisać wiek w sposób bardziej ciągły. Przykładowo poniższy L-System komórki która rośnie i jak osiągnie odpowiedni wiek rozdziela się na dwie młode komórki

Parametry zapisuje się wewnątrz nawiasów po przecinku. W aksjomacie muszą one mieć wartości liczbowe. Po lewej stronie trzeba nadać parametrom nazwy (mogą mieć one więcej niż jeden znak). Symbole są identyfikowane po nazwie i liczbie znaków. Po dwukropku można podać warunki logiczne jakie musi spełnić symbol. można w tym umieszczać operacje matematyczne, dozwolone jest mnożenie, dzielenie, dodawanie i odejmowanie. podobnie w parametrach po prawej stronie

Zadanie

Napisz dla parametrycznej wersji Anabeny taką interpretację, żeby komórki rosły wraz z wiekiem.

+ + \ No newline at end of file diff --git a/Wirtualne światy ĆW1.md b/Wirtualne światy ĆW1.md new file mode 100644 index 0000000..7fc3af0 --- /dev/null +++ b/Wirtualne światy ĆW1.md @@ -0,0 +1,290 @@ +# Ćwiczenia 14.03 + +## Hello World w Unity + +(Pliki [https://git.wmi.amu.edu.pl/andkok/Unity_artifitial_world/src/branch/cw1/materiałyHelloWorld](https://git.wmi.amu.edu.pl/andkok/Unity_artifitial_world/src/branch/cw1/materiałyHelloWorld) ) + +1. ### Utwórz nowy projekt + + - [ ] Otwórz Unity Hub + - [ ] Wybierz NEW + - [ ] 3D, wpisz nazwę i wybierz lokalizacje na twoim komputerze. Zatwierdź klikając CREATE + +2. ### Import materiałów, tworzenie terenu i prostych krztałtów + + + + Po środku ekranu jest podgląd sceny (karta Scene). Żeby się w nim przemieszczać klikamy Q i wtedy możemy przesuwać obraz myszką (kliknięcie na prawy przycisk myszy do obracania widoku). Klawisz W zmienia w tryb przesuwania obiektów, a klawisz E jest do obracania obiektów i R zmiany rozmiarów. + + W dolnej części ekranu, w karcie Project przechowujemy wszystkie modele, tekstury, skrypty i inne potrzebne elementy + + - [ ] W folderze Assets kliknij prawym przyciskiem myszy i z menu wybierz Create -> Folder. Nazwij folder tekstury + + - [ ] Otwórz ten folder i przeciągnij do niego wcześniej pobrane tekstury + + Po lewej stronie jest karta Hierarchy. W niej znajdują się wszystkie obiekty, które są w tworzonej scenie. Tam się dodaje nowe elementy sceny i ustawia zależności pomiędzy elementami + + #### Teren + + - [ ] Kliknij prawym przyciskiem myszy w polu Hierarchy i wybierz 3D Object -> Terrain + + Po prawej stronie mamy karte inspector w której są ustawienia zaznaczonego obiektu + + + + - [ ] Dodaj teksturę terenu + + - [ ] W Inspektorze przy zakładce Terrain wybierz drugą opcje (ikonka pędzelka) + - [ ] Wybierz z menu Paint Texture + - [ ] Kliknij Edit Terrain Layers -> Create Layer + - [ ] Dodaj trzy tekstury + - [ ] Urozmaić teren zaznaczając tekstury i malując przy pomocy wybranych poniżej pędzli + + - [ ] Zmień wysokości terenu + + - [ ] W Inspektorze przy zakładce Terrain wybierz drugą opcje (ikonka pędzelka) + - [ ] Wybierz z menu Raise or Lower Terrain + - [ ] Podnosi się teren "malując" po obiekcie terenu, żeby teren obniżyć należy trzymać wciśnięty shift + + #### Proste kształty + + - [ ] W karcie Hierarchy kliknij prawym przyciskiem myszy i wybierz 3D Object -> Sphere + + - [ ] żeby nadać kuli koloru utwórz materiał + + - [ ] + - [ ] Dodaj teksture SphereNormals do tekstur i Inspektorze wybierz texture type: Normal Map, zaznacz create from grayscale, wrap mode: mirror + - [ ] W folderze Assets utwórz folder Materiały i kliknij prawym przyciskiem myszy i wybierz Create -> Material + - [ ] + - [ ] Wybierz kolor Albedo i dodaj teksture do "Normal Map" + - [ ] Przeciągnij materiał na kulę + + - [ ] żeby na kulę działała grawitacja i kolizja dodajemy do niej Rigid Body (Add Component -> Rigidbody), i w Constrains - Freeze rotation zaznacz wszystkie (żeby nam się kula nie stoczyła) + + - [ ] + +3. ### Dodawanie skryptu C# + + W Unity za większość akcji i różnych interakcji odpowiadają skrypty C# + + - [ ] Utwórz folder skrypty i w nim Create -> C# Script, nazwij go Player. + + - [ ] Otwórz ten skrypt i Przed funkcją Start dodaj zmienne: + + ```c# + public float speed = 0.1f; + public float rotationSpeed = 0.1f; + ``` + + - [ ] wewnątrz funkcji Update wklej: + + ```c# + float move = Input.GetAxis("Vertical") * speed; // Pobierz dane od użytkownika (klawisze strzałek lub joystick) i przeskaluj wcześniej podaną wartością (przód tył) + float rotate = Input.GetAxis("Horizontal") * rotationSpeed; // Pobierz dane od użytkownika (klawisze strzałek lub joystick) i przeskaluj wcześniej podaną wartością (obrót) + Vector3 moveVector = new Vector3(PODAJ_X,PODAJ_Y,PODAJ_Z); // Wektor przesuwający objekt DO EDYCJI + gameObject.GetComponent().Translate(moveVector, Space.Self); // Funkcja przesuwająca objekt + gameObject.GetComponent().Rotate(PODAJ_X,PODAJ_Y,PODAJ_Z, Space.Self); // Funkcja obracająca objekt DO EDYCJI + ``` + + - [ ] Zamień wartości wektora ruchu i funkcji obrotu + + - [ ] Przeciągnij skrypt na object Player lub w Inspektorze obiektu Player wybierz Add Component i dodaj Player + +4. ### Ustawianie oświetlenia (globalne) + + - [ ] Ustawienia oświetlenia są w Window -> Rendering -> Ligthning, można je sobie przypiąć w dowolnym miejscu (ja przesuwam je koło inspektora) + - [ ] + - [ ] Dodajemy nowe ustawienia (New Ligthning Settings) + - [ ] Można zmienić Ligthmapper na Progressive GPU + - [ ] Po dostosowaniu ustawień klikamy Generate Lightning (to może chwilę potrwać, nawet do kilku minut) + +5. ### Tworzenie wielu elementów skryptem z ustawianiem ich za pomocą macierzy (Clock) + + + + - [ ] Utwórz objekt tarczy zegara (tekstura , zamień przy tworzeniu materiału Rendering mode na Transparent) + + - [ ] Utwórz obiekt, który posłuży jako szablon wskazówek zegara + + - [ ] Dodaj kod ustawiający zegar do obiektu tarczy zegara + + ```c# + using System.Collections; + using System.Collections.Generic; + using System; + using UnityEngine; + public class Clock : MonoBehaviour + { + public GameObject clockHand; // szablon wyglądu wskazówki zegara + void Start() + { + } + void Update() + { + + DateTime centuryBegin = new DateTime(2001, 1, 1); + DateTime currentDate = DateTime.Now; + long elapsedTicks = currentDate.Ticks - centuryBegin.Ticks; + TimeSpan elapsedSpan = new TimeSpan(elapsedTicks); + + float stopWatchTime = Time.unscaledTime; // Czas w sekundach od startu aplikacji (mały zegar) + float nowTime = (float)(((int)(elapsedSpan.TotalSeconds)) % 86400); // Czas w sekundach od początku doby (0:00) (duży zegar) + // Stop Watch Time: + + float swHour = 0.0f; + float swMinute = 0.0f; + float swSecond = 0.0f; + // Global Time: + float hour = 0.0f; + float minute = 0.0f; + float second = 0.0f; + // Ustaw pozycje, rozmiar i obrót wskazówek zegara z wykorzystaniem przekształceń macierzowych: + // (Matrix4x4.Translate, Matrix4x4.Scale, Matrix4x4.Rotate) dwa pierwsze przyjmują Vector3, a obroty przyjmują Quaternion.Euler( X, Y, Z) (już bez new, bo to funkcja) + + var transformationHsw = Matrix4x4.Translate(new Vector3(0, 0, 0)); + var transformationMsw = Matrix4x4.Translate(new Vector3(0, 0, 0)); + var transformationSsw = Matrix4x4.Translate(new Vector3(0, 0, 0)); + + var transformationH = Matrix4x4.Translate(new Vector3(0, 0, 0)); + var transformationM = Matrix4x4.Translate(new Vector3(0, 0, 0)); + var transformationS = Matrix4x4.Translate(new Vector3(0, 0, 0)); + + // Create game objects instances + + Graphics.DrawMeshInstanced(clockHand.GetComponent().mesh, 0, clockHand.GetComponent().material, new Matrix4x4[6]{transformationHsw, transformationMsw, transformationSsw, transformationH, transformationM, transformationS}); + + } + + } + ``` + + - [ ] Zaznacz w inspektorze przy Clock Hand wcześniej przygotowany objekt + + - [ ] Dodaj odpowiednie przekształcenia, tak aby duży zegar pokazywał czas i mały zegar pokazywał czas od uruchomienia aplikacji + +# L-System + +W tej części zajęć skupimy się na tworzeniu L-Systemów i wykorzystaniu ich do reprezentacji zjawisk przyrodniczych. + +> **Przypomnienie** +> **L-System** to system przepisywania i gramatyka formalna. Składa się z: symboli, które tworzą ciągi znaków; reguł produkcyjnych, które opisują na co należy przepisać dany znak; aksjomatu, czyli początkowego ciągu znaków; i mechanizmu, który tłumaczy ciąg znaków na reprezentacje geometryczną + +Bazą dla tych zajęć jest książka Algorithmic Beauty of Plants dostępna za darmo pod [linkiem](http://algorithmicbotany.org/papers/abop/abop.lowquality.pdf) lub [w wyższej jakości](http://algorithmicbotany.org/papers/abop/abop.pdf) + +## Składnia L-Systemów + +Projekt zawiera bibliotekę, która interpretuje L-Systemy. Ich definicję pobiera z oddzielnego pliku. Ich składnie opisuję definicja L-Systemu opisującego rozwój bakterii Anabaena znajduje się w projekcie pod ścieżką `Assets\LSystem\Anabaena.txt` i wygląda następująco: + +``` +#axiom +L +#rules +L->lR +R->Lr +l->L +r->R +#end rules +``` + +Plik należy zacząć od linii `#axiom`, następnie w następnej linii zamieścić ciąg początkowy. Później pomiędzy liniami `#rules` i `#end rules` umieścić instrukcje przepisywania według zasady: +```-> ``` +każdy znak przed strzałką i po strzałce (z wyjątkiem reguł o których później) jest traktowany jako następny symbol. W przypadku kilku reguł, które dotyczą tego samego symbolu wykona się ta, która jest wyżej w pliku. Między reguły można dodawać komentarze, znakiem komentującym jest `#`. Jeżeli znak nie posiada żadnej reguły, która by go opisywała, to nie jest on zmieniany. + +Odpal scenę **LSystemFromFile**, zaznacz **LSystemController** w panelu po prawej. Po lewej w polu **L System Path** wpisz `Assets\LSystem\Anabaena.txt` kliknij **Load File**, by załadować LSystem. Następnie Evaluate, by wykonać przepisanie. W scenie wyświetlą się obiekty reprezentujące symbole a w konsoli wyświetli się wynik przepisania. + +Składnia wszystkich rozszerzeń jest zaprezentowana w pliku `SampleLSystem.txt` w tej chwili niektóre reguły mogą byc niezrozumiałe, ale może się on przydać później jako wzorzec. + +## Turtle Graphics + +Turtle Graphics jest metodą tworzenia grafiki komputerowej, wykorzystuje kursor (tytułowego żółwia) wykonujący instrukcje w przestrzeni lokalnej. + +![https://en.wikipedia.org/wiki/Turtle_graphics](Turtle-animation-20210313143359379.gif) + +L-Systemy można interpretować za pomocą Turtle Graphics, poprzez przypisanie każdemu symbolowi instrukcji jaką ma wykonać żółw. Następnie żółw będzie wykonywał kolejne instrukcje czytając napis od lewej do prawej. + +Na początek zaczniemy od prostej reprezentacji, gdzie `+` będzie oznaczał w kierunku zgodnym z ruchem wskazówek zegara o wskazany kąt, natomiast `-` w przeciwnym. Kąt zwyczajowo oznacza się grecką literą $\delta$. Każdy inny symbol będzie oznaczał idź prosto o 1. + +Odpal Scenę LSystem2D, załaduj plik `Sierpinski.txt`, ustaw kąt na 60 stopni i wykonaj kilka kroków. + +### Zadanie + +napisz Lsystem, który będzie rysował gwiazdkę kocha + +1. #### Krzywa kocha: + + + + + +Opis: + +1. Podziel linię na 3 równę części +2. Przy środkowej części narysuj równoboczny trójkąt zwrócony na zewnątrz +3. Usuń środkową część pierwotnej lini + +Musimy z jednej lini zrobić 4 nowe, z czego pierwsza i ostatnia idą w tym samym kierunku, a dwie środkowe idą pod innym kątem (podpowiedź: dając dwa razy + lub - możesz zwiększyć kąt) + +2. #### W pierwszym kroku L-Systemu utwórz trójkąt + + ![](Von_Koch_curve.gif) + +## Bracketed L-systems + +W podstawowej wersji L-Systemy są pojedyńczym ciągiem znaków, by uzyskać możliwość tworzenia rozgałęzień wprowadzamy dwa specjalne znaki `[` oraz `]` pierwszy mówi, żeby zapamiętać obecny stan, drugi oznacza by wrócić do stanu zapamiętanym przy ostatnim znaku `[`. Przykładowo ciąg symboli `F[+FFF][-F]FF` dla $\delta=90$ będzie reprezentowany następująco +![obraz](im_bracketed-5642437.jpg) + +### Zadanie + +Stwórz systemy a i e: + +Screenshot 2021-03-13 at 14.29.06 ![Screenshot 2021-03-13 at 14.29.10](Screenshot 2021-03-13 at 14.29.10.png) + +## Pisanie własnej interpretacji LSystemów + +Wróćmy do sceny LSystemFromFile W tej scenie zamiast kresek pojawiają się figury reprezentujące komórki (czerwona lewa, zielona prawa, niska młoda, wysoka dorosła). Otwórz skrypt AnabeanaTurtle.cs, który odpowiada za rysowanie. Zawiera on klasę `AnabeanaTurtle` dziedziczącą po `TurtleLSystem`. `TurtleLSystem` jest klasą abstrakcyjną, wymaga zdefiniowania funkcji `initLiteralInterpretation`, w której należy opisać jak interpretować symbole. + +```CS + protected override void initLiteralInterpretation() { + turtleInterpretation = new Dictionary>>(); + //turtleInterpretation + var transformation = Matrix4x4.Translate(new Vector3(0.0f, 0.1f, 0)) * Matrix4x4.Scale(new Vector3 (0.05f, 0.1f, 0.05f)); + + turtleInterpretation.Add("+", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, -angle)))); + turtleInterpretation.Add("-", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, angle)))); + + //Wildcard how to represent any other symbol + turtleInterpretation.Add("*.*", (float[] args) => new Tuple(obj, transformation)); + } + +``` + +Żeby tego dokonać należy uzupełnić słownik `turtleInterpretation`, którego kluczami są opisywane symbole jako stringi. Natomiast wartościami są funkcje, które przyjmują jako argument tablicę parametrów danego symbolu (o tym później) a zwracają Krotkę, której pierwszym elementem jest rysowany obiekt, natomiast drugim transformacja, jaką wykona żółw. Powyższym przykładzie obiekty są czytane z modeli a transformacja zawsze jest taka sama, czyli translacja o wektor (0.1,0,0) i skalowanie o wektor (0.1,0.1,0.1). (Skalowania nie są pamiętane przez żółwia) + +Te funkcje są wykorzystywane przez żółwia do interpretacji ciągu symboli. Przykładowo `LRr` zostanie zinterpretowany następująco: + +* żółw przesuwa się o 0.1 w osi X umieszcza bigL w punkcie (0.1,0,0) +* żółw przesuwa się o 0.1 w osi X umieszcza bigR w punkcie (0.2,0,0) (ponieważ (0.1,0,0)+(0.1,0,0)=(0.2,0,0) ) +* żółw przesuwa się o 0.1 w osi X umieszcza bigL w punkcie (0.3,0,0) + +### Zadanie + +Jak wyszukasz w internecie obrazki Anabaeny, zobaczysz, że są one często powykręcane, dodaj do macierz przekształceń obroty w osi Y o losowy kąt pomiędzy -20 a 20 stopni. + +## Parametryczne L-Systemy + +Parametryczne L-Systemy operują na symbolach parametrycznych znakach, czyli takich, które posiadają 0 lub więcej parametrów rzeczywistych. Pozwala to przechowywać różne wewnętrzne stany obiektów. Przykładowo dla modelu Anabeany powyżej rozróżniamy tylko 2 stany, młody i dorosły. Dzięki parametrycznym L-Systemom możemy opisać wiek w sposób bardziej ciągły. Przykładowo poniższy L-System komórki która rośnie i jak osiągnie odpowiedni wiek rozdziela się na dwie młode komórki + +``` +#axiom +B(1) +#rules +B(a) : a<2 -> B(a+0.1) +B(a) : a>=2 -> B(1)B(1) +#end rules +``` + +Parametry zapisuje się wewnątrz nawiasów po przecinku. W aksjomacie muszą one mieć wartości liczbowe. Po lewej stronie trzeba nadać parametrom nazwy (mogą mieć one więcej niż jeden znak). Symbole są identyfikowane po nazwie i liczbie znaków. Po dwukropku można podać warunki logiczne jakie musi spełnić symbol. można w tym umieszczać operacje matematyczne, dozwolone jest mnożenie, dzielenie, dodawanie i odejmowanie. podobnie w parametrach po prawej stronie + +### Zadanie + +Napisz dla parametrycznej wersji Anabeny taką interpretację, żeby komórki rosły wraz z wiekiem. \ No newline at end of file diff --git a/Wirtualne światy ĆW1.pdf b/Wirtualne światy ĆW1.pdf new file mode 100644 index 0000000..9ddbded Binary files /dev/null and b/Wirtualne światy ĆW1.pdf differ diff --git a/clock.png b/clock.png new file mode 100644 index 0000000..a992411 Binary files /dev/null and b/clock.png differ diff --git a/im_bracketed-5640616.jpg b/im_bracketed-5640616.jpg new file mode 100644 index 0000000..5e055e3 Binary files /dev/null and b/im_bracketed-5640616.jpg differ diff --git a/im_bracketed-5642437.jpg b/im_bracketed-5642437.jpg new file mode 100644 index 0000000..5e055e3 Binary files /dev/null and b/im_bracketed-5642437.jpg differ diff --git a/im_bracketed.jpg b/im_bracketed.jpg new file mode 100644 index 0000000..5e055e3 Binary files /dev/null and b/im_bracketed.jpg differ diff --git a/materiałyHelloWorld/.DS_Store b/materiałyHelloWorld/.DS_Store new file mode 100644 index 0000000..0d0f8fd Binary files /dev/null and b/materiałyHelloWorld/.DS_Store differ diff --git a/materiałyHelloWorld/Grass-025.jpg b/materiałyHelloWorld/Grass-025.jpg new file mode 100644 index 0000000..537a065 Binary files /dev/null and b/materiałyHelloWorld/Grass-025.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_AmbientOcclusion.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_AmbientOcclusion.jpg new file mode 100644 index 0000000..ad0097a Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_AmbientOcclusion.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Color.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Color.jpg new file mode 100644 index 0000000..618b089 Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Color.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Displacement.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Displacement.jpg new file mode 100644 index 0000000..57f6fa7 Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Displacement.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_IdMask.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_IdMask.jpg new file mode 100644 index 0000000..e5ba8a1 Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_IdMask.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Normal.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Normal.jpg new file mode 100644 index 0000000..c830857 Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Normal.jpg differ diff --git a/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Roughness.jpg b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Roughness.jpg new file mode 100644 index 0000000..dcbaf57 Binary files /dev/null and b/materiałyHelloWorld/Gravel020_1K-JPG/Gravel020_1K_Roughness.jpg differ diff --git a/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_AmbientOcclusion.jpg b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_AmbientOcclusion.jpg new file mode 100644 index 0000000..b5bdadb Binary files /dev/null and b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_AmbientOcclusion.jpg differ diff --git a/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Color.jpg b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Color.jpg new file mode 100644 index 0000000..a6ef317 Binary files /dev/null and b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Color.jpg differ diff --git a/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Displacement.jpg b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Displacement.jpg new file mode 100644 index 0000000..4f5c8bf Binary files /dev/null and b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Displacement.jpg differ diff --git a/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Normal.jpg b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Normal.jpg new file mode 100644 index 0000000..9f3c872 Binary files /dev/null and b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Normal.jpg differ diff --git a/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Roughness.jpg b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Roughness.jpg new file mode 100644 index 0000000..b04b4f6 Binary files /dev/null and b/materiałyHelloWorld/Ground019_1K-JPG/Ground019_1K_Roughness.jpg differ diff --git a/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_AmbientOcclusion.jpg b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_AmbientOcclusion.jpg new file mode 100644 index 0000000..9f36e2e Binary files /dev/null and b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_AmbientOcclusion.jpg differ diff --git a/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Color.jpg b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Color.jpg new file mode 100644 index 0000000..b388450 Binary files /dev/null and b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Color.jpg differ diff --git a/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Displacement.jpg b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Displacement.jpg new file mode 100644 index 0000000..312346a Binary files /dev/null and b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Displacement.jpg differ diff --git a/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Normal.jpg b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Normal.jpg new file mode 100644 index 0000000..7f694af Binary files /dev/null and b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Normal.jpg differ diff --git a/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Roughness.jpg b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Roughness.jpg new file mode 100644 index 0000000..8f81c4b Binary files /dev/null and b/materiałyHelloWorld/Ground037_1K-JPG/Ground037_1K_Roughness.jpg differ diff --git a/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_AmbientOcclusion.jpg b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_AmbientOcclusion.jpg new file mode 100644 index 0000000..ea9b0d3 Binary files /dev/null and b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_AmbientOcclusion.jpg differ diff --git a/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Color.jpg b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Color.jpg new file mode 100644 index 0000000..b2b2a4b Binary files /dev/null and b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Color.jpg differ diff --git a/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Displacement.jpg b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Displacement.jpg new file mode 100644 index 0000000..fe75d59 Binary files /dev/null and b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Displacement.jpg differ diff --git a/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Normal.jpg b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Normal.jpg new file mode 100644 index 0000000..52e616f Binary files /dev/null and b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Normal.jpg differ diff --git a/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Roughness.jpg b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Roughness.jpg new file mode 100644 index 0000000..afdcd7c Binary files /dev/null and b/materiałyHelloWorld/Ground042_1K-JPG/Ground042_1K_Roughness.jpg differ diff --git a/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_AmbientOcclusion.jpg b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_AmbientOcclusion.jpg new file mode 100644 index 0000000..6e5a533 Binary files /dev/null and b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_AmbientOcclusion.jpg differ diff --git a/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Color.jpg b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Color.jpg new file mode 100644 index 0000000..b98da29 Binary files /dev/null and b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Color.jpg differ diff --git a/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Displacement.jpg b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Displacement.jpg new file mode 100644 index 0000000..1269fd1 Binary files /dev/null and b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Displacement.jpg differ diff --git a/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Normal.jpg b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Normal.jpg new file mode 100644 index 0000000..c3ac026 Binary files /dev/null and b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Normal.jpg differ diff --git a/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Roughness.jpg b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Roughness.jpg new file mode 100644 index 0000000..7b96e41 Binary files /dev/null and b/materiałyHelloWorld/Moss002_1K-JPG/Moss002_1K_Roughness.jpg differ diff --git a/materiałyHelloWorld/clock.png b/materiałyHelloWorld/clock.png new file mode 100644 index 0000000..a992411 Binary files /dev/null and b/materiałyHelloWorld/clock.png differ diff --git a/ph00001.png b/ph00001.png new file mode 100644 index 0000000..f94261e Binary files /dev/null and b/ph00001.png differ diff --git a/ph00002.png b/ph00002.png new file mode 100644 index 0000000..93fda98 Binary files /dev/null and b/ph00002.png differ diff --git a/ph00003.png b/ph00003.png new file mode 100644 index 0000000..7fc9f12 Binary files /dev/null and b/ph00003.png differ diff --git a/ph00004.png b/ph00004.png new file mode 100644 index 0000000..18ccddc Binary files /dev/null and b/ph00004.png differ diff --git a/ph00005.png b/ph00005.png new file mode 100644 index 0000000..a72a535 Binary files /dev/null and b/ph00005.png differ diff --git a/ph00006.png b/ph00006.png new file mode 100644 index 0000000..6e65633 Binary files /dev/null and b/ph00006.png differ diff --git a/ph00007.png b/ph00007.png new file mode 100644 index 0000000..4ac9908 Binary files /dev/null and b/ph00007.png differ diff --git a/ph00008.png b/ph00008.png new file mode 100644 index 0000000..2275e7e Binary files /dev/null and b/ph00008.png differ diff --git a/ph00009.png b/ph00009.png new file mode 100644 index 0000000..b784481 Binary files /dev/null and b/ph00009.png differ diff --git a/unity_artifitial_world-st/.DS_Store b/unity_artifitial_world-st/.DS_Store new file mode 100644 index 0000000..e52e4cb Binary files /dev/null and b/unity_artifitial_world-st/.DS_Store differ diff --git a/unity_artifitial_world-st/.gitignore b/unity_artifitial_world-st/.gitignore new file mode 100644 index 0000000..63f7e81 --- /dev/null +++ b/unity_artifitial_world-st/.gitignore @@ -0,0 +1,62 @@ +# ---> Unity +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Mm]emoryCaptures/ + +# Asset meta data should only be ignored when the corresponding asset is also ignored +!/[Aa]ssets/**/*.meta + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.unitypackage + +# Crashlytics generated file +crashlytics-build.properties + + diff --git a/unity_artifitial_world-st/Assets/.DS_Store b/unity_artifitial_world-st/Assets/.DS_Store new file mode 100644 index 0000000..9ecb7f4 Binary files /dev/null and b/unity_artifitial_world-st/Assets/.DS_Store differ diff --git a/unity_artifitial_world-st/Assets/Editor.meta b/unity_artifitial_world-st/Assets/Editor.meta new file mode 100644 index 0000000..316103a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 329ec9409c534054d896e1b927a1b71c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs b/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs new file mode 100644 index 0000000..95a6014 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +[CustomEditor(typeof(TurtleLSystem),true)] +public class TurtleEditor : Editor +{ + TurtleLSystem turtleLSystem; + + + public override void OnInspectorGUI() { + DrawDefaultInspector(); + + if (GUILayout.Button("Load file")) { + turtleLSystem.loadFile(); + } + + if (GUILayout.Button("Evaluate")) { + turtleLSystem.evaluateAndPresent(); + } + + } + void OnEnable() { + turtleLSystem = (TurtleLSystem)target; + Tools.hidden = true; + } + + void OnDisable() { + Tools.hidden = false; + } +} diff --git a/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs.meta b/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs.meta new file mode 100644 index 0000000..9ffda18 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Editor/TurtleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5805e7212a5b20b4da42e342c1edaf04 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem.meta b/unity_artifitial_world-st/Assets/LSystem.meta new file mode 100644 index 0000000..8dfcdb8 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53a6756541318784f8b822a4dd8564c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt b/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt new file mode 100644 index 0000000..e3441ed --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt @@ -0,0 +1,8 @@ +#axiom +L +#rules +L->lR +R->Lr +l->L +r->R +#end rules \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt.meta b/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt.meta new file mode 100644 index 0000000..cf834be --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Anabaena.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da39d102803271748a23bdcc7d8431f8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/Koch.txt b/unity_artifitial_world-st/Assets/LSystem/Koch.txt new file mode 100644 index 0000000..4aa9fb2 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Koch.txt @@ -0,0 +1,5 @@ +#axiom + +#rules + +#end rules \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/Koch.txt.meta b/unity_artifitial_world-st/Assets/LSystem/Koch.txt.meta new file mode 100644 index 0000000..e6d30df --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Koch.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 951913a6e45d3664092bc8a3c1760fdc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/Plant.txt b/unity_artifitial_world-st/Assets/LSystem/Plant.txt new file mode 100644 index 0000000..be708a9 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Plant.txt @@ -0,0 +1,6 @@ +#axiom +X +#rules +X->F[+X]F[-X]+X +F->FF +#end rules \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/Plant.txt.meta b/unity_artifitial_world-st/Assets/LSystem/Plant.txt.meta new file mode 100644 index 0000000..bf1a5b2 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Plant.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c4604d19f702cfe4cbe8779ea593c44e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt b/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt new file mode 100644 index 0000000..2793f93 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt @@ -0,0 +1,32 @@ +#axiom +A +#rules +#komentarz +#podstawowe przekształcenie +X-> AX +# instrukcja z rozgałęzieniem +Y->A[A]A +#parametryczne symbola są rozpoznawane po literze i liczbie argumentów czyli B, B(0) i B(0,0) to różne symbole +#w regułach dla parametrycznych symboli w poprzedniku definiuje się nazwę parametru. ta instrukcja zamieni C(1) na C(1.1) a C(2) na C(2.1) +C(a) -> C(a+0.1) +# ta instrukcja wykona się, jeżeli a>1 i a<2 przecinek oznacza iloczyn logiczny +B(a) : a>1,a<2 -> C(a)B(0) +# ta instrukcja wykona się, jeżeli poprzednia się nie wykonała i gdy a<=1 +B(a) : a<=1 -> B(2*a) +# ta instrukcja się wykona, jeżeli poprzednie 2 się nie wykonają +B(a) -> B(0) +# instrukcja się wykona, jeżeli następnikiem A jest B(a) i a>0 +A > B(a) : a>0 -> B(a)[A] + +# instrukcja się wykona, jeżeli poprzednikiem A jest B(a) i a>0 (i jeżeli poprzednia się nie wykonała) +B(a) < A a>0 -> B(a)[A] +# instrukcja się wykona, jeżeli poprzednikiem A jest B(a), następnikiem jest C(b) oraz a+b>0 (i jeżeli poprzednia się nie wykonała) +B(a) < A > C(b) a+b>0 -> CC + +# wykona się jedna z trzech opcji z wagami odpowiednio 0.2, 0.6 i 0.3 - wagi nie muszą się sumować do 1. można stochastyczność łączyć z powyższymi rozszerzeniami. +C(a) -> #stochastic +p=0.2 AB(1) +p=0.6 B(1)A +p=0.3 AA +#stochastic end +#rules end \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt.meta b/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt.meta new file mode 100644 index 0000000..856d0a3 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc28e59818768ff4ab9acdef983dcc01 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt b/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt new file mode 100644 index 0000000..b850e0f --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt @@ -0,0 +1,6 @@ +#axiom +L +#rules +L->R+L+R +R->L-R-L +#end rules \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt.meta b/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt.meta new file mode 100644 index 0000000..59cd799 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/Sierpinski.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9bea09810f87e84b8b3546d47d5dd31 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/LSystem/stochastic.txt b/unity_artifitial_world-st/Assets/LSystem/stochastic.txt new file mode 100644 index 0000000..0931066 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/stochastic.txt @@ -0,0 +1,10 @@ +#axiom +B +#rules +B -> #stochastic +p=3 FB +p=1 [+FB]FB +p=1 [-FB]FB +p=1 F +#stochastic end +#rules end \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/LSystem/stochastic.txt.meta b/unity_artifitial_world-st/Assets/LSystem/stochastic.txt.meta new file mode 100644 index 0000000..8f2df81 --- /dev/null +++ b/unity_artifitial_world-st/Assets/LSystem/stochastic.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 465f8d1d1ead7fb459bcd7aca3c3829d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Materials.meta b/unity_artifitial_world-st/Assets/Materials.meta new file mode 100644 index 0000000..8855373 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89cf392879d4c2541b060051f92c5d3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Materials/leaf material.mat b/unity_artifitial_world-st/Assets/Materials/leaf material.mat new file mode 100644 index 0000000..f50a26e --- /dev/null +++ b/unity_artifitial_world-st/Assets/Materials/leaf material.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: leaf material + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4cf885f6598282142af25712ee21ee4c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.426 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/unity_artifitial_world-st/Assets/Materials/leaf material.mat.meta b/unity_artifitial_world-st/Assets/Materials/leaf material.mat.meta new file mode 100644 index 0000000..103de8a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Materials/leaf material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 40be7c60f27d0cf48818ffb9777dd7fb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models.meta b/unity_artifitial_world-st/Assets/Models.meta new file mode 100644 index 0000000..6dd1a3b --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3c3b87c72381e5d428800a1a82fa4fcc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/Flower.fbx b/unity_artifitial_world-st/Assets/Models/Flower.fbx new file mode 100644 index 0000000..f120df4 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/Flower.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/Flower.fbx.meta b/unity_artifitial_world-st/Assets/Models/Flower.fbx.meta new file mode 100644 index 0000000..3642900 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/Flower.fbx.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 06838bfd0bf73c647812994a50837eaf +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert2 + second: {fileID: 2100000, guid: 40be7c60f27d0cf48818ffb9777dd7fb, type: 2} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 10 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 10 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/bigL.fbx b/unity_artifitial_world-st/Assets/Models/bigL.fbx new file mode 100644 index 0000000..7e70f03 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/bigL.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/bigL.fbx.meta b/unity_artifitial_world-st/Assets/Models/bigL.fbx.meta new file mode 100644 index 0000000..7b1cf0d --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/bigL.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: a3c2912313688e7409f0487619dfe166 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/bigR.fbx b/unity_artifitial_world-st/Assets/Models/bigR.fbx new file mode 100644 index 0000000..51f1cd3 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/bigR.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/bigR.fbx.meta b/unity_artifitial_world-st/Assets/Models/bigR.fbx.meta new file mode 100644 index 0000000..d2bc62d --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/bigR.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: ca516c08d816f5f4d8454c64e6d9eeab +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/cylinder.prefab b/unity_artifitial_world-st/Assets/Models/cylinder.prefab new file mode 100644 index 0000000..3bd83b3 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/cylinder.prefab @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3132964252630352729 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7594502901394162009} + - component: {fileID: 4391870333044285248} + - component: {fileID: 4416866696227822882} + m_Layer: 0 + m_Name: cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7594502901394162009 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3132964252630352729} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 0.5, y: 1, z: 0.5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4391870333044285248 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3132964252630352729} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4416866696227822882 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3132964252630352729} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -876546973899608171, guid: aac0ac856409e5c40acd3911f70271ca, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 diff --git a/unity_artifitial_world-st/Assets/Models/cylinder.prefab.meta b/unity_artifitial_world-st/Assets/Models/cylinder.prefab.meta new file mode 100644 index 0000000..36b35e8 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/cylinder.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 537804071d025f14d907bbea26a5b603 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/l.fbx b/unity_artifitial_world-st/Assets/Models/l.fbx new file mode 100644 index 0000000..4a7cba5 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/l.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/l.fbx.meta b/unity_artifitial_world-st/Assets/Models/l.fbx.meta new file mode 100644 index 0000000..159a2ac --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/l.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: cc42f516e5f34114f99b98c835b8c85f +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/leaf.fbx b/unity_artifitial_world-st/Assets/Models/leaf.fbx new file mode 100644 index 0000000..7ef55b8 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/leaf.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/leaf.fbx.meta b/unity_artifitial_world-st/Assets/Models/leaf.fbx.meta new file mode 100644 index 0000000..586128a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/leaf.fbx.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 8d0c2fec8c571c349b438fde39c3938e +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 0.2 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 0.002 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/r.fbx b/unity_artifitial_world-st/Assets/Models/r.fbx new file mode 100644 index 0000000..64d772b Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/r.fbx differ diff --git a/unity_artifitial_world-st/Assets/Models/r.fbx.meta b/unity_artifitial_world-st/Assets/Models/r.fbx.meta new file mode 100644 index 0000000..86a9aeb --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/r.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: aac0ac856409e5c40acd3911f70271ca +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/source.meta b/unity_artifitial_world-st/Assets/Models/source.meta new file mode 100644 index 0000000..4003936 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/source.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ca0a699eef019647a81d0cedf67bf1f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/textures.meta b/unity_artifitial_world-st/Assets/Models/textures.meta new file mode 100644 index 0000000..0207089 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b146ace23aa4ca4b98c431ce3cf7fe7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png b/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png new file mode 100644 index 0000000..a7c13c5 Binary files /dev/null and b/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png differ diff --git a/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png.meta b/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png.meta new file mode 100644 index 0000000..23cb15a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Models/textures/Petal.tga.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 4cf885f6598282142af25712ee21ee4c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/New Material.mat b/unity_artifitial_world-st/Assets/New Material.mat new file mode 100644 index 0000000..8505456 --- /dev/null +++ b/unity_artifitial_world-st/Assets/New Material.mat @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material + m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _SUNDISK_SIMPLE + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AtmosphereThickness: 0 + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1.3 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SunDisk: 1 + - _SunSize: 0.074 + - _SunSizeConvergence: 5 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _GroundColor: {r: 0, g: 0, b: 0, a: 1} + - _SkyTint: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/unity_artifitial_world-st/Assets/New Material.mat.meta b/unity_artifitial_world-st/Assets/New Material.mat.meta new file mode 100644 index 0000000..d3c32d3 --- /dev/null +++ b/unity_artifitial_world-st/Assets/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15df3041f931a4b3189530813766d6c2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scenes.meta b/unity_artifitial_world-st/Assets/Scenes.meta new file mode 100644 index 0000000..ad3891d --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a7209ff67dfb5d44a85024a84dd4f84a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity b/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity new file mode 100644 index 0000000..83a475f --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity @@ -0,0 +1,348 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: 15df3041f931a4b3189530813766d6c2, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.0061698696, g: 0.0061698696, b: 0.0061698696, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &755131157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755131159} + - component: {fileID: 755131158} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &755131158 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &755131159 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1466590775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466590777} + - component: {fileID: 1466590776} + m_Layer: 0 + m_Name: LSystemController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466590776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 077aaeb6378653940b8ed1da8871fed4, type: 3} + m_Name: + m_EditorClassIdentifier: + LSystemPath: Assets/LSystem/Koch.txt + steps: 1 + obj: {fileID: 3132964252630352729, guid: 537804071d025f14d907bbea26a5b603, type: 3} + angle: 60 +--- !u!4 &1466590777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2076165847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076165850} + - component: {fileID: 2076165849} + - component: {fileID: 2076165848} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &2076165848 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 +--- !u!20 &2076165849 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &2076165850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.01, z: -1.525} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity.meta b/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity.meta new file mode 100644 index 0000000..b45eb96 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystem2D.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 24701bad68f1faf44913a871fbd8a989 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity b/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity new file mode 100644 index 0000000..188d62f --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity @@ -0,0 +1,345 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &755131157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755131159} + - component: {fileID: 755131158} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &755131158 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &755131159 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1466590775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466590777} + - component: {fileID: 1466590776} + m_Layer: 0 + m_Name: LSystemController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466590776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fdbab7936197e9c4e9c5225e40810916, type: 3} + m_Name: + m_EditorClassIdentifier: + LSystemPath: Assets\LSystem\Sierpinski.txt + steps: 1 + obj: {fileID: 3132964252630352729, guid: 537804071d025f14d907bbea26a5b603, type: 3} + angle: 60 +--- !u!4 &1466590777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2076165847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076165850} + - component: {fileID: 2076165849} + - component: {fileID: 2076165848} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &2076165848 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 +--- !u!20 &2076165849 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &2076165850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.01, z: -1.525} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity.meta b/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity.meta new file mode 100644 index 0000000..37fa7ec --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystem3D.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12af647ed3c081041a127bb7756c2996 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity b/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity new file mode 100644 index 0000000..0dd321c --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity @@ -0,0 +1,343 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &755131157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755131159} + - component: {fileID: 755131158} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &755131158 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &755131159 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755131157} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1466590775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466590777} + - component: {fileID: 1466590776} + m_Layer: 0 + m_Name: LSystemController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466590776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7bc6128c88800ea48ba9b9e7070ec728, type: 3} + m_Name: + m_EditorClassIdentifier: + LSystemPath: Assets\LSystem\Anabaena.txt + steps: 1 +--- !u!4 &1466590777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466590775} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2076165847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076165850} + - component: {fileID: 2076165849} + - component: {fileID: 2076165848} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &2076165848 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 +--- !u!20 &2076165849 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &2076165850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076165847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.01, z: -1.525} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity.meta b/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity.meta new file mode 100644 index 0000000..a3e7672 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scenes/LSystemFromFile.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3cb948870e265c74e8d96211e8d7ec25 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts.meta b/unity_artifitial_world-st/Assets/Scripts.meta new file mode 100644 index 0000000..634bab8 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0b8448007c1f7d4c89463b38c587b65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs b/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs new file mode 100644 index 0000000..db8bc7a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using ConsoleLSystem; +using System; + +public class AnabaenaTurtle : TurtleLSystem { + + protected override void initLiteralInterpretation() { + + turtleInterpretation = new Dictionary>>(); + //turtleInterpretation + //loading required objects + var path = "Assets/Models/{0}.fbx"; + var bigL = (GameObject)AssetDatabase.LoadAssetAtPath(String.Format(path, "bigL"), typeof(GameObject)); + var bigR = (GameObject)AssetDatabase.LoadAssetAtPath(String.Format(path, "bigR"), typeof(GameObject)); + var l = (GameObject)AssetDatabase.LoadAssetAtPath(String.Format(path, "l"), typeof(GameObject)); + var r = (GameObject)AssetDatabase.LoadAssetAtPath(String.Format(path, "r"), typeof(GameObject)); + + //creating functions that are used for interpretation + turtleInterpretation.Add("l", (float[] args) => new Tuple(l, Matrix4x4.Translate(new Vector3(0.1f, 0, 0)) * Matrix4x4.Scale(new Vector3(0.1f, 0.1f, 0.1f)))); + turtleInterpretation.Add("r", (float[] args) => new Tuple(r, Matrix4x4.Translate(new Vector3(0.1f, 0, 0)) * Matrix4x4.Scale(new Vector3(0.1f, 0.1f, 0.1f)))); + turtleInterpretation.Add("L", (float[] args) => new Tuple(bigL, Matrix4x4.Translate(new Vector3(0.1f, 0, 0)) * Matrix4x4.Scale(new Vector3(0.1f, 0.1f, 0.1f)))); + turtleInterpretation.Add("R", (float[] args) => new Tuple(bigR, Matrix4x4.Translate(new Vector3(0.1f, 0, 0)) * Matrix4x4.Scale(new Vector3(0.1f, 0.1f, 0.1f)))); + } +} + \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs.meta b/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs.meta new file mode 100644 index 0000000..536f60d --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/AnabaenaTurtle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7bc6128c88800ea48ba9b9e7070ec728 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem.meta b/unity_artifitial_world-st/Assets/Scripts/LSystem.meta new file mode 100644 index 0000000..c247381 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b31ef5c8270a72344914c1bade61a626 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs new file mode 100644 index 0000000..19349b1 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs @@ -0,0 +1,303 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + + +//TODO add parsing for more than single letter + +namespace ConsoleLSystem { + abstract public class LSystemGeneralWordBuilder { + abstract public LSystemNode createLSystemNode(string name, int values_number); + abstract public void fillArguments(LSystemNode node, string[] arguments_strings); + } + public class LSystemWordBuilder : LSystemGeneralWordBuilder { + public override LSystemNode createLSystemNode(string name, int values_number) { + return new LSystemNode(new LSystemNodeLiteral(name, values_number)); + } + + + public override void fillArguments(LSystemNode node, string[] arguments_strings) { + for (int i = 0; i < arguments_strings.Length; i++) { + node.literal.values[i] = float.Parse(arguments_strings[i], NumberStyles.Any, CultureInfo.InvariantCulture); + } + } + } + + public class LSystemWordGeneratorBuilder : LSystemGeneralWordBuilder { + public Dictionary variableIndex { get;} + public LSystemWordGeneratorBuilder(Dictionary variable_index) { + this.variableIndex = variable_index; + } + public override LSystemNode createLSystemNode(string name, int values_number) { + return new LSystemNodeGenerator(name, values_number); + } + + public override void fillArguments(LSystemNode node, string[] arguments_strings) { + MathExpression[] expressions = arguments_strings.Select(argument => new MathExpression(variableIndex, argument)).ToArray(); + LSystemNodeGenerator ng = (LSystemNodeGenerator)node; + ng.fillArguments(expressions); + } + + } + public class LSystemFileParser { + //LSystemWordParser wordParser; + //LSystemRulesParser ruleParser; + + //public LSystemFileParser(LSystemWordParser wordParser, LSystemRulesParser ruleParser) { + // this.wordParser = wordParser; + // this.ruleParser = ruleParser; + //} + public static int countParenthesisEnd(string line,char opening_char, char closing_char) { + var parenthesises_number = 1; + var length = -1; + while (parenthesises_number > 0) { + length++; + var c = line[1 + length]; + if (c == opening_char) { + parenthesises_number++; + } + if (c == closing_char) { + parenthesises_number--; + } + } + return length; + } + public static bool parenthesisCheck(string line) { + var parenthesises_number = 0; + var brackets_number = 0; + foreach (var s in line) { + if (s == '(') { + parenthesises_number++; + } + if (s == ')') { + parenthesises_number--; + } + if (s == '[') { + brackets_number++; + } + if (s == ']') { + brackets_number--; + } + if (brackets_number<0 || parenthesises_number < 0) { + return false; + } + + } + return (brackets_number == 0 && parenthesises_number == 0); + } + + public static LSystemNode parseWord(string line, LSystemGeneralWordBuilder builder) { + var read_characters = 0; + LSystemNode node; + if (line[0] == '[') { + node = builder.createLSystemNode("", 0); + } + else { + var literal_name = line.Substring(0, 1); + if (line.Length>1 && line[1] == '(') { + var length = countParenthesisEnd(line.Substring(1), '(', ')'); + var values_string = line.Substring(2, length).Split(','); + node = builder.createLSystemNode(literal_name, values_string.Length); + + builder.fillArguments(node, values_string); + //Leter and: (, ) + read_characters += length + 3; + + } + else { + read_characters += 1; + node = builder.createLSystemNode(line.Substring(0,1),0); + } + } + while (line.Length > read_characters && line[read_characters] == '[') { + + var brackets_number = 1; + var length = countParenthesisEnd(line.Substring(read_characters), '[', ']'); + var child_node = parseWord(line.Substring(read_characters + 1, length),builder); + read_characters += length + 2; + child_node.parent = node; + node.children.Add(child_node); + } + if (read_characters < line.Length) { + var child_node = parseWord(line.Substring(read_characters),builder); + child_node.parent = node; + node.mainChild = (child_node); + } + return node; + } + + public static LSystemNodeLiteralVariable parsePredecesor(string line) { + var name = line.Substring(0, 1); + var varable_index = new Dictionary(); + if (line.Length > 1) { + foreach (var i in line.Substring(2, line.Length - 3).Split(',').Select((_name, Index) => new { _name, Index })) { + varable_index.Add(i._name, i.Index); + }; + } + return new LSystemNodeLiteralVariable(name, varable_index.Count, varable_index); + } + + public static LSystemEvaluator parseLSystem(StreamReader sr) { + string line; + int line_number = 0; + LSystemNode axiom = null; + List rules = null; + while ((line = sr.ReadLine()) != null) { + line_number++; + if (line.Trim() == "#axiom") { + line = sr.ReadLine(); + if (!parenthesisCheck(line)) { + throw new Exception(String.Format("In line {0} invalid syntax", line_number)); + } + axiom = parseWord(line,new LSystemWordBuilder()); + } + if (line.Trim() == "#rules") { + rules = parseLSystemRules(sr); + } + + } + return new LSystemEvaluator(axiom, rules); + } + + private static List parseLSystemRules(StreamReader sr) { + List rules = new List(); + Regex separator = new Regex(@"-(\d*\.?\d*){1}>"); + Regex weight_regex = new Regex(@"p=(\d+\.?\d*){1}"); + string line; + while ((line = sr.ReadLine()) != null && line.Trim() != "#rules end") { + try { + if (line.Length == 0 || line[0] == '#') { + continue; + } + MathExpressionComparison[] conditions = new MathExpressionComparison[0]; + var split = separator.Match(line); + var line_parts = line.Split(new string[] { split.Value }, StringSplitOptions.None); + // check conditions; + //parse predecesor + var _t = line_parts[0].Split(':'); + var predecesor_string = _t[0]; + LSystemNodeLiteralVariable predecesor; + LSystemContext context; + //check if contains < or > + + // check context + getPredecesorContext(predecesor_string, out predecesor, out context); + + if (_t.Length > 1) { + conditions = _t[1].Trim().Split(';').Select(text => MathExpressionComparasionParser.parse(predecesor.variableIndex, text.Trim())).ToArray(); + } + // tochastic rule parsing + var sucsessor_string = line_parts[1]; + var probabilities_list = new List(); + var consequents_list = new List(); + if (sucsessor_string.Trim() == "#stochastic") { + while ((line = sr.ReadLine()) != null && line.Trim() != "#stochastic end") { + if (line[0] == '#') { + continue; + } + var weight_string = weight_regex.Match(line); + var weight = float.Parse(weight_string.Value.Substring(2), NumberStyles.Any, CultureInfo.InvariantCulture); + probabilities_list.Add(weight); + + var prob_len = weight_string.Value.Length; + consequents_list.Add((LSystemNodeGenerator)parseWord(line.Substring(prob_len).Trim(), new LSystemWordGeneratorBuilder(predecesor.variableIndex))); + } + } + else { + consequents_list.Add((LSystemNodeGenerator)parseWord(sucsessor_string.Trim(), new LSystemWordGeneratorBuilder(predecesor.variableIndex))); + } + //context + if (context != null) { + if (consequents_list.Count > 1) { + rules.Add(new LSystemRuleParametricStochasticContext(predecesor, conditions, consequents_list.ToArray(), probabilities_list.ToArray(), context)); + } + else { + rules.Add(new LSystemRuleParametricStochasticContext(predecesor, conditions, consequents_list[0], context)); + } + } + else { + if (consequents_list.Count > 1) { + rules.Add(new LSystemRuleParametricStochastic(predecesor, conditions, consequents_list.ToArray(), probabilities_list.ToArray())); + } + else { + rules.Add(new LSystemRuleParametric(predecesor, conditions, consequents_list[0])); + } + } + //var conditions = parts[0]; + //var result + } + catch (Exception e) { + sr.Close(); + throw new Exception(String.Format("error in {0} with a message \n {1}", line,e.Message)); + } + } + return rules; + } + + private static void getPredecesorContext(string predecesor_string, out LSystemNodeLiteralVariable predecesor, out LSystemContext context) { + string partent_context_str = null; + string child_context_str = null; + string mid_context_str = null; + int mid_start = 0; + + for (int i = 0; i < predecesor_string.Length; i++) { + if (predecesor_string[i] == '<' && partent_context_str == null) { + partent_context_str = predecesor_string.Substring(0, i).Trim(); + mid_start = i+1; + //Console.WriteLine(i); + } + if (predecesor_string[i] == '>' && child_context_str == null) { + child_context_str = predecesor_string.Substring(i + 1).Trim(); + mid_context_str = predecesor_string.Substring(mid_start, i - mid_start).Trim(); + //Console.WriteLine(i); + } + + } + if (mid_context_str == null) { + mid_context_str = predecesor_string.Substring(mid_start).Trim(); + } + LSystemNodeLiteralVariable parent = null; + LSystemNodeLiteralVariable child = null; + predecesor = LSystemFileParser.parsePredecesor(mid_context_str); + if (partent_context_str != null) { + parent = LSystemFileParser.parsePredecesor(partent_context_str); + foreach (KeyValuePair kvp in new Dictionary(predecesor.variableIndex)) { + //textBox3.Text += ("Key = {0}, Value = {1}", kvp.Key, kvp.Value); + predecesor.variableIndex[kvp.Key] = kvp.Value + parent.variableIndex.Count; + } + foreach (KeyValuePair kvp in parent.variableIndex) { + //textBox3.Text += ("Key = {0}, Value = {1}", kvp.Key, kvp.Value); + predecesor.variableIndex.Add(kvp.Key, kvp.Value); + } + } + if (child_context_str != null) { + int size = predecesor.variableIndex.Count; + child = LSystemFileParser.parsePredecesor(child_context_str); + foreach (KeyValuePair kvp in child.variableIndex) { + //textBox3.Text += ("Key = {0}, Value = {1}", kvp.Key, kvp.Value); + predecesor.variableIndex.Add(kvp.Key, kvp.Value + size); + } + } + if (child_context_str != null) { + if (partent_context_str != null) { + context = new LSystemContext(parent, child); + } + else { + context = new LSystemContext(); + context.setOnlySucceeding(child); + } + } + else if (partent_context_str != null) { + context = new LSystemContext(); + context.setOnlyPreceding(parent); + } + else { + context = null; + } + } + } +} diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs.meta b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs.meta new file mode 100644 index 0000000..5c1a704 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5d9ea0d39208315468053b0ae8bb3e95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs new file mode 100644 index 0000000..ac58130 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ConsoleLSystem { + public class LSystemNodeLiteralVariable : LSystemNodeLiteral { + public Dictionary variableIndex { get; } + + public LSystemNodeLiteralVariable(string name, int values_number, Dictionary variableIndex) : base(name, values_number) { + this.variableIndex = variableIndex; + } + + } + public class LSystemNodeGenerator : LSystemNode { + MathExpression[] math_expressions; + + public LSystemNodeGenerator(string name, int arguments) : base(new LSystemNodeLiteral(name, arguments)) { + } + public void fillArguments(MathExpression[] math_expressions) { + this.math_expressions = math_expressions; + } + public LSystemNode eval(float[] values) { + var literal = new LSystemNodeLiteral(this.literal.name, this.literal.values_number); + for (int i = 0; i < literal.values_number; i++) { + literal.values[i] = math_expressions[i].eval(values); + } + var result = new LSystemNode(literal); + foreach (LSystemNodeGenerator child in children) { + var _child = child.eval(values); + _child.parent = result; + result.children.Add(_child); + + } + if (mainChild != null) { + var _mainChild = ((LSystemNodeGenerator)mainChild).eval(values); + _mainChild.parent = result; + result.mainChild = _mainChild; + } + else { + result.mainChild = null; + } + return result; + } + + } + abstract public class LSystemRule { + abstract public bool is_aplicable(LSystemNode processed_node); + abstract public LSystemNode rewrite(LSystemNode processed_node); + } + + public class LSystemRuleBasic : LSystemRule { + LSystemNodeLiteral input;// { get; } + LSystemNode output; + + public LSystemRuleBasic(LSystemNodeLiteral input, LSystemNode output) { + this.input = input; + this.output = output; + } + + override public bool is_aplicable(LSystemNode processed_node) { + if (processed_node.literal == input) { + return true; + } + else { + return false; + } + } + override public LSystemNode rewrite(LSystemNode processed_node) { + if (is_aplicable(processed_node)) { + return output.deep_copy(); + } + else { + return new LSystemNode(processed_node.literal); + } + } + } + + public class LSystemRuleParametric : LSystemRule { + LSystemNodeLiteralVariable predecesor;// { get; } + LSystemNodeGenerator consequent; + MathExpressionComparison[] conditions; + + public LSystemRuleParametric(LSystemNodeLiteralVariable predecesor, MathExpressionComparison[] conditions, LSystemNodeGenerator consequent) { + this.predecesor = predecesor; + this.consequent = consequent; + this.conditions = conditions; + } + + public override bool is_aplicable(LSystemNode processed_node) { + if (processed_node.literal.name != predecesor.name || processed_node.literal.values_number != predecesor.values_number) { + return false; + } + foreach (var condition in conditions) { + if (!condition.eval(processed_node.literal.values)) { + return false; + } + } + return true; + } + + public override LSystemNode rewrite(LSystemNode processed_node) { + if (is_aplicable(processed_node)) { + return consequent.eval(processed_node.literal.values); + } + else { + return new LSystemNode(processed_node.literal); + } + } + } + + public class LSystemRuleParametricStochastic : LSystemRule { + protected LSystemNodeLiteralVariable predecesor;// { get; } + protected LSystemNodeGenerator[] consequents; + protected float[] probabilities; + protected MathExpressionComparison[] conditions; + protected Random random; + + public LSystemRuleParametricStochastic(LSystemNodeLiteralVariable predecesor, MathExpressionComparison[] conditions, LSystemNodeGenerator[] consequents, float[] probabilities) { + this.predecesor = predecesor; + this.consequents = consequents; + this.conditions = conditions; + float probabilities_sum = 0; + foreach (var probability in probabilities) { probabilities_sum += probability; } + float acumulator = 0; + this.probabilities = new float[consequents.Length]; + for (int i = 0; i < consequents.Length; i++) { + var probability = probabilities[i] / probabilities_sum; + this.probabilities[i] = probability + acumulator; + acumulator += probability; + } + random = new Random(); + + } + public LSystemRuleParametricStochastic(LSystemNodeLiteralVariable predecesor, MathExpressionComparison[] conditions, LSystemNodeGenerator consequent) { + this.predecesor = predecesor; + this.consequents = new LSystemNodeGenerator[] { consequent }; + this.conditions = conditions; + float probabilities_sum = 0; + probabilities = new float[1] { 1 }; + random = new Random(); + + } + public override bool is_aplicable(LSystemNode processed_node) { + if (processed_node.literal.name != predecesor.name || processed_node.literal.values_number != predecesor.values_number) { + return false; + } + foreach (var condition in conditions) { + if (!condition.eval(processed_node.literal.values)) { + return false; + } + } + return true; + } + + public override LSystemNode rewrite(LSystemNode processed_node) { + var result = random.NextDouble(); + int consequent_index = 0; + for (int i = 0; i < probabilities.Length; i++) { + if (result < probabilities[i]) { + consequent_index = i; + break; + } + } + if (is_aplicable(processed_node)) { + return consequents[consequent_index].eval(processed_node.literal.values); + } + else { + return new LSystemNode(processed_node.literal); + } + } + } + public class LSystemContext { + public LSystemNodeLiteral parent { get; set; } + public LSystemNodeLiteral child { get; set; } + public LSystemNodeLiteral mid { get; set; } + bool isPreceding = false; + bool isSucceeding = false; + + public LSystemContext(LSystemNodeLiteral parent, LSystemNodeLiteral child) { + this.parent = parent; + this.child = child; + this.isPreceding = true; + this.isSucceeding = true; + } + public LSystemContext() { + + } + public void setOnlyPreceding(LSystemNodeLiteral parent) { + this.parent = parent; + this.mid = mid; + this.isPreceding = true; + this.isSucceeding = false; + } + public void setOnlySucceeding(LSystemNodeLiteral child) { + this.child = child; + this.isPreceding = false; + this.isSucceeding = true; + } + public bool isAplicable(LSystemNode node,out float[] variables) { + var variables_list = new List(); + if (isPreceding && parent != node.parent.literal) { + variables = new float[0]; + return false; + } + if (isPreceding) { + variables_list.AddRange(node.parent.literal.values); + } + variables_list.AddRange(node.literal.values); + if (isSucceeding) { + var result = false; + LSystemNodeLiteral childLiteral; + foreach(var child in node.getAllChildren()) { + if (child.literal == this.child) { + childLiteral = child.literal; + result = true; + variables_list.AddRange(child.literal.values); + break; + } + } + if (!result) { + variables = new float[0]; + return false; + } + } + variables = variables_list.ToArray(); + return true; + + } + + } + + public class LSystemRuleParametricStochasticContext : LSystemRuleParametricStochastic { + LSystemContext context; + public LSystemRuleParametricStochasticContext(LSystemNodeLiteralVariable predecesor, MathExpressionComparison[] conditions, LSystemNodeGenerator[] consequents, float[] probabilities, LSystemContext context) : base(predecesor, conditions, consequents, probabilities) { + this.context = context; + } + public LSystemRuleParametricStochasticContext(LSystemNodeLiteralVariable predecesor, MathExpressionComparison[] conditions, LSystemNodeGenerator consequent, LSystemContext context) : base(predecesor, conditions, consequent) { + this.context = context; + } + public override bool is_aplicable(LSystemNode processed_node) { + if (processed_node.literal.name != predecesor.name || processed_node.literal.values_number != predecesor.values_number) { + return false; + } + var variables = new float[0]; + if (!context.isAplicable(processed_node, out variables)) { + return false; + } + foreach (var condition in conditions) { + if (!condition.eval(variables)) { + return false; + } + } + return true; + } + bool is_aplicable(LSystemNode processed_node, out float[] variables) { + variables = new float[0]; + if (processed_node.literal.name != predecesor.name || processed_node.literal.values_number != predecesor.values_number) { + return false; + } + if (!context.isAplicable(processed_node, out variables)) { + return false; + } + foreach (var condition in conditions) { + if (!condition.eval(variables)) { + return false; + } + } + return true; + } + + public override LSystemNode rewrite(LSystemNode processed_node) { + var result = random.NextDouble(); + int consequent_index = 0; + for (int i = 0; i < probabilities.Length; i++) { + if (result < probabilities[i]) { + consequent_index = i; + } + } + float[] variables; + if (is_aplicable(processed_node, out variables)) { + return consequents[consequent_index].eval(variables); + } + else { + return new LSystemNode(processed_node.literal); + } + } + + } +} diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs.meta b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs.meta new file mode 100644 index 0000000..d1a0dc8 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/LSystemRule.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fbf81cc8f22e1b040aa2f1b218391989 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs b/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs new file mode 100644 index 0000000..5cea3d8 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; + +namespace ConsoleLSystem { + public class MathExpressionComparison{ + MathExpression leftSide; + MathExpression rightSide; + Func comparisonFunction; + + public MathExpressionComparison(MathExpression leftSide, MathExpression rightSide, Func comparisonFunction) { + this.leftSide = leftSide; + this.rightSide = rightSide; + this.comparisonFunction = comparisonFunction; + } + public bool eval(float[] variables) { + return comparisonFunction(leftSide.eval(variables), rightSide.eval(variables)); + } + + + } + public class MathExpressionNode { + Func function; + MathExpressionNode[] childNodes; + + public MathExpressionNode(Func function, MathExpressionNode[] childNodes) { + this.function = function; + this.childNodes = childNodes; + } + + public float eval(float[] variables) { + var x = childNodes.Select(node => node.eval(variables)).ToArray(); + return function(x, variables); + } + } + public class MathExpression { + private static Random random = new Random(); + + private static Dictionary expression_hierarchy = new Dictionary{ + {'*', 3}, + {'/', 3}, + {'+', 1}, + {'-', 1}, + }; + MathExpressionNode rootNode; + public float eval(float [] variables) { + return rootNode.eval(variables); + } + private static float negate(float[] children, float[] variables) { + return -children[0]; + } + private static float mulitply(float[] children, float[] variables) { + return children[0] * children[1]; + } + private static float divide(float[] children, float[] variables) { + return children[0] / children[1]; + } + private static float add(float[] children, float[] variables) { + return children[0] + children[1]; + } + private static float subtract(float[] children, float[] variables) { + return children[0] - children[1]; + } + + //private MathExpressionNode parse(Dictionary variableNames, string expression_string) { + + + // var read_characters = 0; + // var node = new MathExpressionNode(); + // if (expression_string[0] == '(') { + // var length = LSystemFileParser.countParenthesisEnd(expression_string, '(', ')'); + // if (length == expression_string.Length - 2) { + // return parse(variableNames, expression_string.Substring(1, length)); + // } + + // var left_child_node = parse(variableNames, expression_string.Substring(1, length)); + // read_characters += length + 2; + + // node.function = getFunction(expression_string[read_characters]); + // read_characters += 1; + + // if (expression_string[read_characters] == '(') + // } + + + + //} + + private static MathExpressionNode parse(Dictionary variableNames, string expression_string) { + expression_string = expression_string.Trim(); + var expression_pos = -1; + var current_level = 1000; + for (int i = 0; i < expression_string.Length; i++) { + if (expression_string[i] == '(') { + var length = LSystemFileParser.countParenthesisEnd(expression_string.Substring(i), '(', ')'); + if (length == expression_string.Length - 2) { + return parse(variableNames, expression_string.Substring(1, length)); + } + //skip parenthesis + // if expression is covered in ( ) + if (i == 0 && length == expression_string.Length - 2) { + return parse(variableNames, expression_string.Substring(1, length)); + } + else { + i += length + 1; + continue; + } + } + int new_level; + if (expression_hierarchy.TryGetValue(expression_string[i],out new_level)) { + if (i>0 && !(i - 1 == expression_pos && expression_string[i] == '-')) { + if (new_level <= current_level) { + current_level = new_level; + expression_pos = i; + } + } + } + } + if (expression_pos > 0) { + var left_node = parse(variableNames, expression_string.Substring(0, expression_pos)); + var right_node = parse(variableNames, expression_string.Substring(expression_pos + 1)); + MathExpressionNode[] child_nodes = { left_node, right_node }; + switch (expression_string[expression_pos]) { + case '*': + return new MathExpressionNode(mulitply, child_nodes); + break; + case '/': + return new MathExpressionNode(divide, child_nodes); + break; + case '+': + return new MathExpressionNode(add, child_nodes); + break; + case '-': + return new MathExpressionNode(subtract, child_nodes); + break; + default: + throw new Exception(String.Format("unknown operation {0} in {1}", expression_string[expression_pos], expression_string)); + break; + } + } + else if (expression_string[0] == '-') { + MathExpressionNode[] a = { parse(variableNames, expression_string.Substring(1)) }; + return new MathExpressionNode(negate, a); + } + else { + int index; + if (expression_string == "RANDOM") { + return new MathExpressionNode((float[] children, float[] arguments) => (float)random.NextDouble(), new MathExpressionNode[0]); + } + if (variableNames.TryGetValue(expression_string.Trim(),out index)){ + return new MathExpressionNode((float[] children, float[] arguments) => arguments[index], new MathExpressionNode[0]); + } + else { + try { + float value = float.Parse(expression_string, NumberStyles.Any, CultureInfo.InvariantCulture); + return new MathExpressionNode((float[] children, float[] arguments) => value, new MathExpressionNode[0]); + } + catch (Exception) { + + throw new Exception(String.Format("can't parse ``{0}``. It's not a number nor a known variable", expression_string)); + } + } + } + } + public MathExpression(Dictionary variableNames, string expression_string) { + rootNode = parse(variableNames, expression_string); + } + } + public class MathExpressionComparasionParser { + private static bool le(float a, float b) { return a < b; } + private static bool leq(float a, float b) { return a <= b; } + private static bool eq(float a, float b) { return a == b; } + + public static MathExpressionComparison parse(Dictionary variableNames, string expression_string) { + //var operations = new string[]{ "<=", ">=", "<", ">"}; + if (expression_string.Contains("<=")) { + + var parts = expression_string.Split(new string[] { "<=" }, StringSplitOptions.None).Select(s => s.Trim()).ToArray(); + return new MathExpressionComparison(new MathExpression(variableNames, parts[0]), new MathExpression(variableNames, parts[1]), leq); + } + if (expression_string.Contains(">=")) { + var parts = expression_string.Split(new string[] { ">=" }, StringSplitOptions.None).Select(s => s.Trim()).ToArray(); + return new MathExpressionComparison(new MathExpression(variableNames, parts[1]), new MathExpression(variableNames, parts[0]), leq); + } + if (expression_string.Contains("==")) { + var parts = expression_string.Split(new string[] { "==" }, StringSplitOptions.None).Select(s => s.Trim()).ToArray(); + return new MathExpressionComparison(new MathExpression(variableNames, parts[1]), new MathExpression(variableNames, parts[0]), eq); + } + if (expression_string.Contains("<")) { + var parts = expression_string.Split('<').Select(s => s.Trim()).ToArray(); + return new MathExpressionComparison(new MathExpression(variableNames, parts[0]), new MathExpression(variableNames, parts[1]), le); + } + if (expression_string.Contains(">")) { + var parts = expression_string.Split('>').Select(s => s.Trim()).ToArray(); + return new MathExpressionComparison(new MathExpression(variableNames, parts[1]), new MathExpression(variableNames, parts[0]), le); + } + + throw new Exception(String.Format("comparison operation not recognized in {}", expression_string)); + } + } +} diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs.meta b/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs.meta new file mode 100644 index 0000000..c75b2bc --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/MathExpression.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9f4cd6c897dbc5741b23eee6d073826c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs b/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs new file mode 100644 index 0000000..13e2b86 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs @@ -0,0 +1,346 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace ConsoleLSystem { + public class LSystemNodeLiteral { + public string name { get; } + public int values_number { get; } + + public float[] values { get; set; } + + public LSystemNodeLiteral(string name, int values_number) { + this.name = name; + this.values_number = values_number; + //in case it would be 0 + values = new float[values_number]; + } + public LSystemNodeLiteral(LSystemNodeLiteral other) { + this.name = other.name; + this.values_number = other.values_number; + //in case it would be 0 + values = new float[this.values_number]; + other.values.CopyTo(values, 0); + } + + public static bool operator ==(LSystemNodeLiteral thisLiteral, LSystemNodeLiteral other) { + return thisLiteral.name == other.name && thisLiteral.values_number == other.values_number; + } + public static bool operator !=(LSystemNodeLiteral thisLiteral, LSystemNodeLiteral other) { + return !(thisLiteral.name == other.name && thisLiteral.values_number == other.values_number); + } + + public override string ToString() { + if (values_number == 0) { + return name; + } + else { + StringBuilder sb = new StringBuilder(name, name.Length + values_number * 7 + 4); + sb.Append("("); + for (int i = 0; i < values_number; i++) { + var v = values[i]; + sb.AppendFormat("{0:0.##}", v); + if (i < values_number - 1) { + sb.Append(","); + } + } + sb.Append(")"); + return sb.ToString(); + } + } + } + + public class LSystemNode { + public LSystemNodeLiteral literal { get; set; } + public List children { get; set; } + public LSystemNode mainChild { get; set; } + + private LSystemNode _parent; + public LSystemNode parent { + get { if (_parent is null) { return new LSystemNode(new LSystemNodeLiteral(" _ ", 0)); } + else { return _parent; } } + set { _parent = value; } } + + public LSystemNode(LSystemNodeLiteral nodeLiteral) { + literal = nodeLiteral; + children = new List(); + mainChild = null; + } + + public LSystemNode(LSystemNodeLiteral nodeLiteral, List children, LSystemNode mainChild) { + literal = nodeLiteral; + this.children = children; + this.mainChild = mainChild; + } + public LSystemNode(LSystemNodeLiteral nodeLiteral, List children) { + literal = nodeLiteral; + this.children = children; + this.mainChild = null; + } + public List getAllChildren() { + var result = new List(children); + if (mainChild != null){ + result.Add(mainChild); + } + return result; + } + + public LSystemNode deep_copy() { + if (children.Count() == 0 && mainChild == null) { + return new LSystemNode(new LSystemNodeLiteral(literal)); + } + else if (mainChild != null) { + var result = new LSystemNode(new LSystemNodeLiteral(literal)); + result.mainChild = mainChild.deep_copy(); + return result; + } + else { + var new_children = new List(); + foreach (var x in children) { + new_children.Add(x.deep_copy()); + } + return new LSystemNode(literal, new_children, this.mainChild.deep_copy()); + } + } + + private static LSystemNode deepestNode(LSystemNode node) { + while (node.mainChild != null) { + node = node.mainChild; + } + return node; + } + + public LSystemNode newParent() { + return deepestNode(this); + } + + public override string ToString() { + StringBuilder sb = new StringBuilder(literal.ToString()); + var node = this; + while (true) { + foreach (var child in node.children) { + sb.Append("["); + sb.Append(child.ToString()); + sb.Append("]"); + } + if (node.mainChild != null) { + sb.Append(node.mainChild.literal.ToString()); + node = node.mainChild; + } + else { + return sb.ToString(); + } + } + } + } + + + public class LSystemEvaluator { + public LSystemNode lSystemString { get; set; } + public List lSystemRules { get; set; } + + public LSystemEvaluator(LSystemNode startingString, List rules) { + lSystemString = startingString; + lSystemRules = rules; + } + private LSystemNode _rewrite(LSystemNode node) { + foreach (var rule in lSystemRules) { + if (rule.is_aplicable(node)) { + return rule.rewrite(node); + } + } + return new LSystemNode(node.literal); + } + //private void _rewrite_recursive(LSystemNode node, LSystemNode parent) { + // var new_node = _rewrite(node); + // parent.children.Add(new_node); + // new_node.parent = parent; + // var new_parent = new_node.newParent(); + + // foreach (var child in node.children) { + // _rewrite_recursive(child, new_parent); + // } + //} + + + private void _rewrite_recursive(LSystemNode node, LSystemNode parent) { + var new_node = _rewrite(node); + parent.children.Add(new_node); + new_node.parent = parent; + var new_parent = new_node.newParent(); + + foreach (var child in node.children) { + _rewrite_recursive(child, new_parent); + } + while (node.mainChild != null) { + new_node = _rewrite(node.mainChild); + new_node.parent = new_parent; + + new_parent.mainChild = new_node; + new_parent = new_node.newParent(); + foreach (var child in node.mainChild.children) { + _rewrite_recursive(child, new_parent); + } + node = node.mainChild; + } + } + public void rewrite() { + var new_root = _rewrite(lSystemString); + var new_parent = new_root.newParent(); + foreach (var child in lSystemString.children) { + _rewrite_recursive(child, new_parent); + } + var node = lSystemString; + + while (node.mainChild != null) { + var new_node = _rewrite(node.mainChild); + new_node.parent = new_parent; + + new_parent.mainChild = new_node; + new_parent = new_node.newParent(); + foreach (var child in node.mainChild.children) { + _rewrite_recursive(child, new_parent); + } + node = node.mainChild; + } + lSystemString = new_root; + } + //private void rewrite(ref LSystemNode currentNode) + } + //abstract class LSystemWordParser { } + //abstract class LSystemRulesParser { } + + class A { + public int B { get; set; } + public A[] AA { get; set; } + } + class Program { + static void runParametric() { + + Dictionary variableIndex = new Dictionary { + {"a", 0}, + {"b", 1}, + + }; + var predecesor1 = LSystemFileParser.parsePredecesor("B(a,b)"); + var predecesor2 = LSystemFileParser.parsePredecesor("A(a)"); + var condition1 = MathExpressionComparasionParser.parse(variableIndex, "a>b"); + var condition2 = MathExpressionComparasionParser.parse(variableIndex, "a>5"); + + var builder = new LSystemWordGeneratorBuilder(variableIndex); + + var consequent1 = (LSystemNodeGenerator)LSystemFileParser.parseWord("B(0,b)[A(a/2)]A(a/2)", builder); + var consequent2 = (LSystemNodeGenerator)LSystemFileParser.parseWord("B(a+3.5,b+1)", builder); + var consequent3 = (LSystemNodeGenerator)LSystemFileParser.parseWord("B(0,a)", builder); + var consequent4 = (LSystemNodeGenerator)LSystemFileParser.parseWord("A(a+1)", builder); + + var rule1 = new LSystemRuleParametric(predecesor1, new MathExpressionComparison[] { condition1 }, consequent1 ); + var rule2 = new LSystemRuleParametric(predecesor1, new MathExpressionComparison[] { }, consequent2 ); + var rule3 = new LSystemRuleParametric(predecesor2, new MathExpressionComparison[] { condition2 }, consequent3 ); + var rule4 = new LSystemRuleParametric(predecesor2, new MathExpressionComparison[] { }, consequent4); + + var axiom = LSystemFileParser.parseWord("A(6)", new LSystemWordBuilder()); + + var rules = new List { rule1, rule2, rule3, rule4 }; + var evaluator = new LSystemEvaluator(axiom, rules); + Console.WriteLine(evaluator.lSystemString.ToString()); + for (int i = 0; i < 20; i++) { + evaluator.rewrite(); + Console.WriteLine(evaluator.lSystemString.ToString()); + } + } + static void runContext() { + var axiom = LSystemFileParser.parseWord("A(1)A(1)A(1)A(1)A(1)A(1)B(2)", new LSystemWordBuilder()); + var predecesor = LSystemFileParser.parsePredecesor("A(a)"); + var predecesor1 = LSystemFileParser.parsePredecesor("B(b)"); + + var contex = new LSystemContext(); + contex.setOnlySucceeding(new LSystemNodeLiteral("B", 1)); + + var contex1 = new LSystemContext(); + contex1.setOnlyPreceding(new LSystemNodeLiteral("A", 1)); + + + Dictionary variableIndex = new Dictionary { + { "a", 0 }, + { "b", 1 }, + }; + var builder = new LSystemWordGeneratorBuilder(variableIndex); + var consequent = (LSystemNodeGenerator)LSystemFileParser.parseWord("B(a)", builder); + var consequent1 = (LSystemNodeGenerator)LSystemFileParser.parseWord("A(1)", builder); + var consequent2 = (LSystemNodeGenerator)LSystemFileParser.parseWord("A(a+1)", builder); + + MathExpressionComparison comparison = MathExpressionComparasionParser.parse(variableIndex, "a>b"); + MathExpressionComparison comparison1 = MathExpressionComparasionParser.parse(variableIndex, "a<=b"); + + var rule = new LSystemRuleParametricStochasticContext(predecesor, new MathExpressionComparison[] { comparison }, consequent, contex); + var rule1 = new LSystemRuleParametricStochasticContext(predecesor, new MathExpressionComparison[] { }, consequent2, contex); + var rule2 = new LSystemRuleParametricStochasticContext(predecesor1, new MathExpressionComparison[] { comparison }, consequent1, contex1); + + + var rules = new List { rule, rule1, rule2 }; + var evaluator = new LSystemEvaluator(axiom, rules); + Console.WriteLine(evaluator.lSystemString.ToString()); + for (int i = 0; i < 20; i++) { + evaluator.rewrite(); + Console.WriteLine(evaluator.lSystemString.ToString()); + } + + } + static void runFile() { + Console.WriteLine("Enter filepath:"); + string filepath = Console.ReadLine(); + var evaluator = LSystemFileParser.parseLSystem(new StreamReader(filepath)); + Console.WriteLine(evaluator.lSystemString.ToString()); + while (true) { + Console.ReadLine(); + evaluator.rewrite(); + Console.WriteLine(evaluator.lSystemString.ToString()); + } + + } + static void Main(string[] args) { + runFile(); + //runContext(); + //var Al = new LSystemNodeLiteral("Al", 0); + //var Ar = new LSystemNodeLiteral("Ar", 0); + //var Bl = new LSystemNodeLiteral("Bl", 0); + //var Br = new LSystemNodeLiteral("Br", 0); + + //var root = new LSystemNode(Ar); + //var rule_list = new List(); + + //var result = new LSystemNode(Al); + //result.children.Add(new LSystemNode(Br)); + + //rule_list.Add(new LSystemRuleBasic(Ar, result)); + + //result = new LSystemNode(Bl); + //result.children.Add(new LSystemNode(Ar)); + //rule_list.Add(new LSystemRuleBasic(Al, result)); + + //result = new LSystemNode(Ar); + //rule_list.Add(new LSystemRuleBasic(Br, result)); + + //result = new LSystemNode(Al); + //rule_list.Add(new LSystemRuleBasic(Bl, result)); + + + //var evaluator = new LSystemEvaluator(root, rule_list); + //for (int i=0; i < 5; i++) { + // Console.WriteLine(evaluator.lSystemString.ToString()); + // evaluator.rewrite(); + //} + //Console.WriteLine(evaluator.lSystemString.ToString()); + + + + + //var node = LSystemFileParser.parseWord("A[AA][A]AB(1,2)[A(1)]C", new LSystemWordBuilder()); + //Console.WriteLine(node.ToString()); + } + } +} diff --git a/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs.meta b/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs.meta new file mode 100644 index 0000000..9741b74 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/LSystem/Program.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5526e59b834cf36449875f1fb1ee497f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/Misc.meta b/unity_artifitial_world-st/Assets/Scripts/Misc.meta new file mode 100644 index 0000000..feec7b7 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Misc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb9b81b8178132748addd3b3c42297cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs b/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs new file mode 100644 index 0000000..914b943 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +public static class MatrixExtensions { + public static Quaternion ExtractRotation(this Matrix4x4 matrix) { + Vector3 forward; + forward.x = matrix.m02; + forward.y = matrix.m12; + forward.z = matrix.m22; + + Vector3 upwards; + upwards.x = matrix.m01; + upwards.y = matrix.m11; + upwards.z = matrix.m21; + + return Quaternion.LookRotation(forward, upwards); + } + + public static Vector3 ExtractPosition(this Matrix4x4 matrix) { + Vector3 position; + position.x = matrix.m03; + position.y = matrix.m13; + position.z = matrix.m23; + return position; + } + + public static Vector3 ExtractScale(this Matrix4x4 matrix) { + Vector3 scale; + scale.x = new Vector4(matrix.m00, matrix.m10, matrix.m20, matrix.m30).magnitude; + scale.y = new Vector4(matrix.m01, matrix.m11, matrix.m21, matrix.m31).magnitude; + scale.z = new Vector4(matrix.m02, matrix.m12, matrix.m22, matrix.m32).magnitude; + return scale; + } +} \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs.meta b/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs.meta new file mode 100644 index 0000000..585a6ba --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Misc/MatrixExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6dbfc235df030184f8ddf6b894d9d3ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs b/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs new file mode 100644 index 0000000..ca4b09a --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using ConsoleLSystem; +using System; + +public class Turtle2D : TurtleLSystem { + public GameObject obj; + public float angle; + + protected override void initLiteralInterpretation() { + turtleInterpretation = new Dictionary>>(); + //turtleInterpretation + var transformation = Matrix4x4.Translate(new Vector3(0.0f, 0.1f, 0)) * Matrix4x4.Scale(new Vector3 (0.05f, 0.1f, 0.05f)); + + turtleInterpretation.Add("+", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, -angle)))); + turtleInterpretation.Add("-", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, angle)))); + + //Wildcard how to represent any other symbol + turtleInterpretation.Add("*.*", (float[] args) => new Tuple(obj, transformation)); + } +} + \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs.meta b/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs.meta new file mode 100644 index 0000000..8d4419d --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Turtle2D.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 077aaeb6378653940b8ed1da8871fed4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs b/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs new file mode 100644 index 0000000..acc6a70 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using ConsoleLSystem; +using System; + +public class Turtle3D : TurtleLSystem { + public GameObject obj; + public float angle; + + protected override void initLiteralInterpretation() { + turtleInterpretation = new Dictionary>>(); + //turtleInterpretation + var transformation = Matrix4x4.Translate(new Vector3(0.0f, 0.1f, 0)) * Matrix4x4.Scale(new Vector3 (0.05f, 0.1f, 0.05f)); + + turtleInterpretation.Add("+", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, -angle)))); + turtleInterpretation.Add("-", (float[] args) => new Tuple(null, Matrix4x4.Rotate(Quaternion.Euler(0, 0, angle)))); + + //Wildcard how to represent any other symbol + turtleInterpretation.Add("*.*", (float[] args) => new Tuple(obj, transformation)); + } +} + \ No newline at end of file diff --git a/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs.meta b/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs.meta new file mode 100644 index 0000000..6f5d753 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/Turtle3D.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdbab7936197e9c4e9c5225e40810916 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs b/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs new file mode 100644 index 0000000..65b3bd4 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs @@ -0,0 +1,155 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using ConsoleLSystem; +using System; + + + +abstract public class TurtleLSystem : MonoBehaviour +{ + public string LSystemPath; + + public uint steps; + + public Dictionary>> turtleInterpretation = new Dictionary>>(); + + private List gameObjects = new List(); + + private Mesh getCylinder(int quality,float width,float length) { + Mesh mesh = new Mesh(); + //mesh.triangles + var points = new List(); + var normals = new List(); + var indices = new List(); + for (float i = 0; i < quality; i++) { + points.Add(new Vector3(Mathf.Cos((i / quality) * 2 * Mathf.PI) * width, 0, Mathf.Sin((i / quality) * 2 * Mathf.PI) * width)); + } + for (float i = 0; i < quality; i++) { + points.Add(new Vector3(Mathf.Cos((i / quality) * 2 * Mathf.PI) * width, length, Mathf.Sin((i / quality) * 2 * Mathf.PI) * width)); + } + //points.Add(new Vector3(0,0,0)); + //points.Add(new Vector3(0, length, 0)); + + for (float i = 0; i < quality; i++) { + normals.Add(new Vector3(Mathf.Cos((i / quality) * 2 * Mathf.PI) * width, 0, Mathf.Sin((i / quality) * 2 * Mathf.PI) * width)); + } + for (float i = 0; i < quality; i++) { + normals.Add(new Vector3(Mathf.Cos((i / quality) * 2 * Mathf.PI) * width, 0, Mathf.Sin((i / quality) * 2 * Mathf.PI) * width)); + } + + //for (int i = 0; i < quality; i++) { + // indices.Add(i); + // indices.Add((i + 1) % quality); + // indices.Add(quality * 2); + //} + //for (int i = 0; i < quality; i++) { + // indices.Add((i + 1) % quality + quality); + // indices.Add(i + quality); + // indices.Add(quality * 2 + 1); + //} + for (int i = 0; i < quality; i++) { + indices.Add((i + 1) % quality); + indices.Add(i); + indices.Add(i + quality); + + indices.Add(i + quality); + indices.Add((i + 1) % quality + quality); + indices.Add((i + 1) % quality); + } + mesh.vertices = points.ToArray(); + mesh.triangles = indices.ToArray(); + mesh.normals = normals.ToArray(); + return mesh; + } + + private LSystemEvaluator evaluator = null; + + private void parseRules(StreamReader sr) { + + } + public void evaluate() { + for (int i=0; i < steps; i++) { + evaluator.rewrite(); + } + Debug.Log(evaluator.lSystemString.ToString()); + } + private GameObject prepeareGameObject(string name, GameObject gameObject,Matrix4x4 transformation) { + var instance = Instantiate(gameObject); + instance.name = String.Format("LSystem Literal {0}", name); + instance.tag = "LSystemLiteral"; + instance.transform.parent = this.gameObject.transform; + instance.transform.position = transformation.ExtractPosition() + transformation.MultiplyPoint(instance.transform.position); + instance.transform.rotation *= transformation.ExtractRotation(); + instance.transform.localScale = Vector3.Scale(transformation.ExtractScale(), instance.transform.localScale); + return instance; + + } + void createModelsRecursive(LSystemNode node, Matrix4x4 transformation) { + while (node != null) { + Matrix4x4 new_transformation=transformation; + Func> interpretation; + var name = node.literal.name; + if (turtleInterpretation.TryGetValue(name, out interpretation) || turtleInterpretation.TryGetValue("*.*", out interpretation)) { + var result = interpretation(node.literal.values); + new_transformation = new_transformation * result.Item2; + if (result.Item1 != null) { + var instance = prepeareGameObject(name, result.Item1, new_transformation); + } + //gameObjects.Add(gameObject); + //remove scale, rather unnecesary + new_transformation = new_transformation * Matrix4x4.Scale(result.Item2.ExtractScale()).inverse; + } + foreach (var child in node.children) { + createModelsRecursive(child, new_transformation); + } + node = node.mainChild; + transformation = new_transformation; + } + } + private void clearObjects() { + //var objects = Resources.FindObjectsOfTypeAll().Where(obj => obj.name == "Name"); + foreach (GameObject gameObject in GameObject.FindGameObjectsWithTag("LSystemLiteral")) { + DestroyImmediate(gameObject); + + } + gameObjects = new List(); + } + + public void present() { + clearObjects(); + createModelsRecursive(evaluator.lSystemString, Matrix4x4.identity); + } + abstract protected void initLiteralInterpretation(); + public void loadFile() { + clearObjects(); + var sr = new StreamReader(LSystemPath); + evaluator = LSystemFileParser.parseLSystem(sr); + sr.Close(); + turtleInterpretation = new Dictionary>>(); + initLiteralInterpretation(); + } + public void evaluateAndPresent() { + evaluate(); + present(); + Debug.Log(evaluator.lSystemString.ToString().Length); + //x.name = "aaa"; + + //Instantiate(x,Matrix4x4.identity); + } + + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs.meta b/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs.meta new file mode 100644 index 0000000..25ffd82 --- /dev/null +++ b/unity_artifitial_world-st/Assets/Scripts/TurtleLSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9f830130a88dbd40a2663c6a1dc301a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_artifitial_world-st/Packages/manifest.json b/unity_artifitial_world-st/Packages/manifest.json new file mode 100644 index 0000000..9449837 --- /dev/null +++ b/unity_artifitial_world-st/Packages/manifest.json @@ -0,0 +1,43 @@ +{ + "dependencies": { + "com.unity.collab-proxy": "1.3.9", + "com.unity.ide.rider": "2.0.7", + "com.unity.ide.visualstudio": "2.0.5", + "com.unity.ide.vscode": "1.2.3", + "com.unity.test-framework": "1.1.20", + "com.unity.textmeshpro": "3.0.1", + "com.unity.timeline": "1.2.12", + "com.unity.ugui": "1.0.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/unity_artifitial_world-st/Packages/packages-lock.json b/unity_artifitial_world-st/Packages/packages-lock.json new file mode 100644 index 0000000..dc472db --- /dev/null +++ b/unity_artifitial_world-st/Packages/packages-lock.json @@ -0,0 +1,331 @@ +{ + "dependencies": { + "com.unity.collab-proxy": { + "version": "1.3.9", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "2.0.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.5", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.3", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.20", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.2.12", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/unity_artifitial_world-st/ProjectSettings/AudioManager.asset b/unity_artifitial_world-st/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..07ebfb0 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 1024 diff --git a/unity_artifitial_world-st/ProjectSettings/ClusterInputManager.asset b/unity_artifitial_world-st/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/unity_artifitial_world-st/ProjectSettings/DynamicsManager.asset b/unity_artifitial_world-st/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..cdc1f3e --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0 + m_ClothInterCollisionStiffness: 0 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_DefaultMaxAngluarSpeed: 7 diff --git a/unity_artifitial_world-st/ProjectSettings/EditorBuildSettings.asset b/unity_artifitial_world-st/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/unity_artifitial_world-st/ProjectSettings/EditorSettings.asset b/unity_artifitial_world-st/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..f920544 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/EditorSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_CollabEditorSettings: + inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 0 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 diff --git a/unity_artifitial_world-st/ProjectSettings/GraphicsSettings.asset b/unity_artifitial_world-st/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..43369e3 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/InputManager.asset b/unity_artifitial_world-st/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..17c8f53 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/InputManager.asset @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/NavMeshAreas.asset b/unity_artifitial_world-st/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/unity_artifitial_world-st/ProjectSettings/PackageManagerSettings.asset b/unity_artifitial_world-st/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/Physics2DSettings.asset b/unity_artifitial_world-st/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..47880b1 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/unity_artifitial_world-st/ProjectSettings/PresetManager.asset b/unity_artifitial_world-st/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/unity_artifitial_world-st/ProjectSettings/ProjectSettings.asset b/unity_artifitial_world-st/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..1aaa0d7 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,674 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 20 + productGUID: 8abf7f6a209aacd46bbbeb771ce56c1a + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: LSystem + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidBlitType: 0 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 0 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 0.1 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + enableVideoLayer: 0 + useProtectedVideoMemory: 0 + minimumSupportedHeadTracking: 0 + maximumSupportedHeadTracking: 1 + hololens: + depthFormat: 1 + depthBufferSharingEnabled: 1 + lumin: + depthFormat: 0 + frameTiming: 2 + enableGLCache: 0 + glCacheMaxBlobSize: 524288 + glCacheMaxFileSize: 8388608 + oculus: + sharedDepthBuffer: 1 + dashSupport: 1 + lowOverheadMode: 0 + protectedContext: 0 + v2Signing: 1 + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: {} + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 19 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 1 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 10.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 10.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPhone58inPortraitSplashScreen: {fileID: 0} + iPhone58inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + iPhone65inPortraitSplashScreen: {fileID: 0} + iPhone65inLandscapeSplashScreen: {fileID: 0} + iPhone61inPortraitSplashScreen: {fileID: 0} + iPhone61inLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSUseLaunchScreenStoryboard: 0 + iOSLaunchScreenCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea + templatePackageId: com.unity.template.3d@4.2.8 + templateDefaultScene: Assets/Scenes/SampleScene.unity + AndroidTargetArchitectures: 1 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: + - m_BuildTarget: Standalone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: tvOS + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: Android + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: iPhone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: WebGL + m_StaticBatching: 0 + m_DynamicBatching: 0 + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 1 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 1 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 1 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 1 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 1 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: + - m_BuildTarget: PS4Player + m_GraphicsJobMode: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobMode: 0 + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 0 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AppleTVSupport + m_APIs: 10000000 + m_Automatic: 0 + - m_BuildTarget: WebGLSupport + m_APIs: 0b000000 + m_Automatic: 1 + m_BuildTargetVRSettings: + - m_BuildTarget: Standalone + m_Enabled: 0 + m_Devices: + - Oculus + - OpenVR + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 0 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 16 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLWasmStreaming: 0 + scriptingDefineSymbols: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + allowUnsafeCode: 0 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 0 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Template_3D + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Template_3D + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: + UNet: 1 + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + projectName: + organizationId: + cloudEnabled: 0 + enableNativePlatformBackendsForNewInputSystem: 0 + disableOldInputManagerSupport: 0 + legacyClampBlendShapeWeights: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/ProjectVersion.txt b/unity_artifitial_world-st/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..833e6ef --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2020.2.4f1 +m_EditorVersionWithRevision: 2020.2.4f1 (becced5a802b) diff --git a/unity_artifitial_world-st/ProjectSettings/QualitySettings.asset b/unity_artifitial_world-st/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..7b7658d --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/QualitySettings.asset @@ -0,0 +1,232 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + Nintendo 3DS: 5 + Nintendo Switch: 5 + PS4: 5 + PSP2: 2 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/unity_artifitial_world-st/ProjectSettings/TagManager.asset b/unity_artifitial_world-st/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..a0fee04 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/TagManager.asset @@ -0,0 +1,44 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: + - LSystemLiteral + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/TimeManager.asset b/unity_artifitial_world-st/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/unity_artifitial_world-st/ProjectSettings/UnityConnectSettings.asset b/unity_artifitial_world-st/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..fa0b146 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/unity_artifitial_world-st/ProjectSettings/VFXManager.asset b/unity_artifitial_world-st/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/unity_artifitial_world-st/ProjectSettings/VersionControlSettings.asset b/unity_artifitial_world-st/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/unity_artifitial_world-st/ProjectSettings/XRSettings.asset b/unity_artifitial_world-st/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/unity_artifitial_world-st/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/unity_artifitial_world-st/README.md b/unity_artifitial_world-st/README.md new file mode 100644 index 0000000..d8e32e0 --- /dev/null +++ b/unity_artifitial_world-st/README.md @@ -0,0 +1,2 @@ +# Unity_artifitial_world + diff --git a/unity_artifitial_world-st/UserSettings/EditorUserSettings.asset b/unity_artifitial_world-st/UserSettings/EditorUserSettings.asset new file mode 100644 index 0000000..dd05fcb --- /dev/null +++ b/unity_artifitial_world-st/UserSettings/EditorUserSettings.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!162 &1 +EditorUserSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_ConfigSettings: + RecentlyUsedScenePath-0: + value: 22424703114646680e0b0227036c73230f040c2f217a027e38271427fb + flags: 0 + vcSharedLogLevel: + value: 0d5e400f0650 + flags: 0 + m_VCAutomaticAdd: 1 + m_VCDebugCom: 0 + m_VCDebugCmd: 0 + m_VCDebugOut: 0 + m_SemanticMergeMode: 2 + m_VCShowFailedCheckout: 1 + m_VCOverwriteFailedCheckoutAssets: 1 + m_VCProjectOverlayIcons: 1 + m_VCHierarchyOverlayIcons: 1 + m_VCOtherOverlayIcons: 1 + m_VCAllowAsyncUpdate: 1