feat(ui, prizes, spawners, editor): expand prize flow and add spawning/editor tooling
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- доработан flow призовой витрины и связанного UI: добавлены `PrizeStandButtonView` и `RulesPrizeListPage`, обновлены `PrizeStandController`, `PrizeStandPrize`, `PrizeStandModal`, `PrizeStandSettingsModal`, `LevelPrizeSettingsModal`, `QRCodeSettingsModal`, `BalanceDisplay`, `ButtonTextFocusColor` и связанные prefab'ы, чтобы улучшить настройку, навигацию, отображение кнопок и prize flow - расширена система настроек и сохранения значений: `OptionPicker` получил отдельный формат `ValueSelector`, обновлены `SettingsDatabase`, `SettingEntryDrawer`, `SettingUIItem`, `SettingsUIGenerator`, `ValueSelectorRow` и `MainSettingsDatabase.asset`, а сохранение option picker-значений, включая `gameplay.gameDifficulty`, исправлено и синхронизировано с остальными настройками - добавлены универсальные спавнеры сущностей: реализованы `EntitySpawner` и `EntitySpawnerManager` с поддержкой весов префабов, точек спавна, заполнения по проценту, ограничений на количество и автоспавна при инициализации - доработана логика игрового спавна и сложности: процент инициализационного спавна может зависеть от настройки `gameplay.gameDifficulty` с градациями 25/50/75/100, в одном цикле массового спавна повторно не используется та же точка, а gizmo спавнера теперь показывает только сами точки без линий - упрощена работа в редакторе Unity и добавлены editor-инструменты: в `GameManager` лицензия пропускается при запуске в `UNITY_EDITOR`, а `HierarchySelectionCounter`, `HierarchySelectionCountOverlay` и `HierarchyBulkRenamerWindow` добавляют подсчет выделения, realtime overlay в `SceneView` и массовое переименование объектов по правилам нумерации из Unity Project Settings - синхронизированы сцены, ресурсы и UI-ассеты под новый flow: обновлены `MainMenu`, `Level UI`, уровни `1-1` и `1-2`, строки настроек, кнопки, TMP/font assets, изображения UI, `prizes.json` и recovery-данные после правок интерфейса и логики - очищены и переразложены часть внешних и служебных ресурсов: удалён пакет `Lava_Flowing_Shader`, переименованы/заменены отдельные UI-prefab'ы и добавлены сопутствующие проектные артефакты, которые сейчас используются обновлённой конфигурацией проекта
This commit is contained in:
parent
63898f9713
commit
cb2e83a596
0
.dotnet/.dotnet/10.0.103.aspNetCertificateSentinel
Normal file
0
.dotnet/.dotnet/10.0.103.aspNetCertificateSentinel
Normal file
0
.dotnet/.dotnet/10.0.103.dotnetFirstUseSentinel
Normal file
0
.dotnet/.dotnet/10.0.103.dotnetFirstUseSentinel
Normal file
0
.dotnet/.dotnet/10.0.103.toolpath.sentinel
Normal file
0
.dotnet/.dotnet/10.0.103.toolpath.sentinel
Normal file
@ -0,0 +1 @@
|
||||
False
|
||||
1
.dotnet/.dotnet/10.0.103_MachineId.dotnetUserLevelCache
Normal file
1
.dotnet/.dotnet/10.0.103_MachineId.dotnetUserLevelCache
Normal file
@ -0,0 +1 @@
|
||||
9cac9297-b74d-4f18-91bf-f665d42c0a54
|
||||
1
.dotnet/.dotnet/MachineId.v1.dotnetUserLevelCache
Normal file
1
.dotnet/.dotnet/MachineId.v1.dotnetUserLevelCache
Normal file
@ -0,0 +1 @@
|
||||
204cdaf9-d3c0-4fc2-9d60-984b9b010f21
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRTTY/bNhD9KwLPonZI0bKkW7DboosgiJEs0qK30XC4JiKTBkVtEiz83wvKDtLtrTfiAfPmfQxfRcATi1G8O59/e+GQF1GL7DdIg+4kGKn2T9CNuh+ha0y7V3uAv0Ut/Hv+IUaxN0SKBpYtdyyNhZ2cWkfSWh4UKAt6ZwonPi9ifBXoG8svnriJyxdOi49BjOJPH2z8Vnajb2iOq21SnPkxLBkDFTGHFJ8Tnjgd7kE1KU4xo5+bORLO17GFl8LWeCtGwXtyHaCWvVOtNFa1cnJ2koPaAaheTdja65gPmVPAuVns11+CbMyBM4260W0DUg/iUguLGYuHCRd++nEusrbMHgpeb/D2HF/FCycx6vpnule6O5r9HcXTCYO9cz745ShqcU7xzCl73vLZLM8zZh9DdVtyP3sOWdTi4+fqMGN2MZ3ehPb5av3xfzj/gHT0gavHh61pQxbdIG1LII0jLQfbgRx6Mw0TKHBaiVrcx5B9WOO6VI8h83PaVIpR/I7zwld97xIdfWbKayrS/+pK+fzd5/toC1B4DinalXL1K24FDTQK2sKx5vOaq09sfWLKXDw9pfVG/58R3WmAomxNiUOuDpiP1R+4HEsQu1YR9hOBAzO1bU89gUPtiAF3aCZw0Dtsne6s0nvjkNTUsyZAtoPriu7SbrUd1DDA1PYwSe4tSGONk+jISORO7ToLPfX6TazVx3mbI6RBD3s57Y2VxqleDmpy0nXdzpqybPsePyO5NW56UYv3nALP/7L8wVOKS3S5ulVfvQnh0xrKz622M/jmg/y+hf8Q6SunqpSHPpS7vPV1uVwu/wAAAP//AwADhY7dAAQAAA==
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACoxUTW/bOBD9KwLPokJR1OetTVrU6LYO6my32NuIHCpEaNKgqHSDwP99QdnZ1G0PexOo4Zs3773hM3GwRzKQN4fDu0d0cSY5iWY94ow3lAlatnesGXg3lFXRtHUlWP03yYn5iE9kIK2QspQ90gobpEKxmo6VllQp7EtWKsZrkTBhmsnwTMAUCh+NxMLPXzHMxjsykL+MU/576g2mkNYvqgje4sbNEZxMZG6DnwLsMdxes7IIfvQRjC2sl2BP12acE1phFBlI3SIbuVCUAdZUVH1Lx7bViVWtGUquOzhdMy5icGCLWT28ElI+Ooxy4AWvCkZ5T445URAhzTDCjHdPh0Rr1ewmnefr8fo5PJNHDGTg+Yu6J7grac3Vfh4XY9WV9dNk3HTtnTbTEiCmxjk5BH/AEA2uam132SunkhWs4A1njOTkE8h74zDb3GRbmybuJcier3MKRYUuO9qXo6a6aWoluGSw+vARg0P7A+onI4OfvY7Z2YTsos+1d9G4xS9ztnERpzPRgbwHO2MqWEJAF7NbiPfZB5jvyUCwrkoJ3SiZZmKsqk52kmngWiKDGsTINOs0VJo3quSt0CDLscNEElWvG5KTOwx748D+4acpaflfv8sfN6hhsXHnl7DGZFYPJCdvjYPwdKr4c0Z1rvp8MuMFaZPSZe06UHb289oadPFC33UThFSge6oqyajQktNeNYz2nRj7kZVM85LkKaNqkfFny0pWkZx8WVzaq2yTzPpuHP2nET9R/YEbplxla5RV1Snd9SOtoOqoUMAoNOVIOXAN0HKlIDW/8fIBQ5b8AuMuwLa77E2Q9yaijEtIY35be2932a2FqH3YX+zgdomHJWZfUJmAMmJicReWBPXeWPyF7MvcZw1Fd8rN7F9qv2IY/Wxiei8++7BfV3Z32tdVj/+5rhegr6R+GwkyEFiiJ8fj8fgvAAAA//8DAMBPo5zmBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzS/zQLbAbxAiCLGKjLXqjyKFNREsuKGrTwNj/XlBrw01v1UkYYIbvPPPOvKBkj4Am9OF0+u0Mqa6oRzXuIUaYxERgqh6JnJieKB8k04Yo+RfqUfwMP9GElHCOOgOYgwQsPBnxzIPD3oOhhHrCRtFq2qcVTS/IxsHDOToY8vo7lDXmhCb0R0w+/2hv2zi4JW9+KHmB+7RWm1wTcyj5qdgjlMMtoUPJc642LsOSnV2uaSusrdoQPZrQqIDMTHhMLIxYcKPwrFRoqsZAwLGg7TUtpgol2WVY/fd3QT7XBNVNbGB8IJgZdOmRt9W2Hma7wuPPU5O1M7tr8X4P77/TCzpDQRPr3+hey924Jd6s27zAGZaTLSuUG5ePR5s86tGp5BOUGmHndIYy5zXWhtg5ZbWm1GurxKi85iPjynMCXhM1euONlUIG5sYx+FkbJYLwjAovQYhZoR7tJJfF1phT96r9domQKurR14fusNgacjn+MouHK9H7/wG0yUYT4mTkUikQnHNr5MwIeCWdlGx2lqgwM6AOyGiEMlQRyg0jho9SaeUtMQ716It1zzFBd3+3W1E4b4PBnjuCRXAMGy8JNlrMZiaUBEZRj25zqjFteVu7+1Thqez9ogl9tMsK104/FPccK7i6lQbhT9nceSjZb6527wagZCADJbwlbfW01e4b+FjAVWg4Hsv2Wu8/KUwyQpqUrRRItTvY+tx9suszmhCMnDqrZ0cCETPn2mlHgmXBAbGjFTMJRAfLA5OeMiWCdXTWwByx4E2QqEfQ/NbtFtekfQCYhECx0NRio4LF1AHnys0axsbknWP3dWl5xlln2D4/4bEIVGND54CDlKMX7bF9Yd+QvJpFaNSjz1ASLP9q+Ut0Ja851O7VNd0vEL5tqd2SbnfQj5jw3zvtu+y+Q+natGxMbVNeB3Tp0RHsuhU47qdoekGHtibd436RmB6k0bpHD9WWup3ewmoggvLL5XL5BwAA//8DAIUFMsfPBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzS6SoW2C3qBsEWcRGWvQ2JIe2EK24oKhNA2P/e0F5DTe99UYMMDMvn3lnXsgCRyQj+XA6/XLGpaykJWXaQ4IJTZmi3DwyPYph5LLTnBmm5F+kJdNH/EFGYpT33FukEjVSFVhPnYyehoCWMx6Y6FWtCU8rGV8ITF3A8+SxS+tXzOuUFjKSP6YlpO+1N0ydn9MWupxmvF/WAouvYg45PWU4Yj7cMt7l5FKBae7m5GF+TVtxrdW6KZCR9AaZEypQBthTJa2hzphYVfWRoRdxgNe0aSmYF5i7NXx7FxRSWbD4UXRCdowKSy4tCVCg/sHBio8/TlXWzuyuxts9vD/HF3LGTEbRvtF9LXfj5+mmpNOMZ5xPkFfMNz4dj7AE0pJTTifMZcKd0/71eYYypaW5NrudJ1wKacnnh+YwQ4kpH3+C9/CK4P5/EDhjdmQkkvVSG4NKSglWO8EwGO21Fs4DM9EJ5B5Zb5Wx3DAurWBW9toMJgCznrTkaU4O5t/XnZ8VzA2BGaEFKrRCaW09QzlgrMICaO304G2QgxFqCIMEC8CtQ+Ot9tUxn8A/Tws293e7F5UPEC0N0jOqohfUBs2oHZSzjnEWBSctuU1LmZYtbWtzvxR8yjs/MpJfYV7xldyH7J+ngr5suUL9U9dmh5zC5kvz7gDOOtZxJmvSVk5bab5gmDL6ghXvY96u9f6TIrRgrErZcsalNAcoz81vsD6TkWAvuYfBeRaZclIOfvAsgogeGfSgHItsiCCj0IELoyJ47gYUngEGGzVpCVbDNbvHhdQMTO+ol1xRpVjF4QPtMWiphUMj61zeOTaf55pnPXgrdj+oQFXkA7XcRRq17oOqzfaNfUNyNZ8aSEs+Yl5w/teXP00+pzXF0lxd2PwE4cu21GPS7I78Pi307532XfLfMDd1WjAtdVWuA7q05IiwbhmP+y0aX8ih7knzuJ8kMXTaDkNLHgrksp3ewqZjisvL5XL5BwAA//8DAOjQ41XQBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRTS2vcMBD+K2bOliPJ8vMWNildQsiSLG3pTZZGWRGvtMhyHoT970XeDWl668WYgW/me+kdnNwj9HB5OFw/o4sT5BDtMuKU14QKwpotrXve9qwqeMOqkpW/IQd7g2/QQyOUYqpDUmKNRGhakaE0imiNHaNMU16JtFM+TtC/g7SFxmersPDTDwyT9Q56+Gmd9i/ptrSFGv2si+BHXLspSqcSmU3wj0HuMWxWlBXBDz5KOxajV3I8wSac0rbCauihapAOXGhCJVZElF1DhqYxiVVlKCpuWnmCWRcxODkWk376JKR9dBhVzwteFpTwDo45aBll0jDICbdvh0Rr8ewqzfNlvPz27/CMAXqef7h7WnehRnuxn4bZjvri9I1yekqyD8EfMESLi0mL7nGU0XqXnS+tRosuQg53D9lmlNH4sP/i3MNJ//o/5G/T9etXVHNEvfKzi9ADY5DDrVQ76zBbXy1FEEpL0xFdKkqEUZx0uqaka8XQDZRRwxNm5V20bvbzlK1dxMew8IcevslxwhPzy6B2NqKKc0iiftWpG5vg9axi9mk/owUtGC0TaI6HOWb3qG1AFTHJ24b5vO8fCK85pYnKHAK6mG1k3GXf5bSDHrAqmZLtoKihYijLVrWKGsmNQiorKQZqaGtkaXitGW+EkYoNLXJFJerO1JADprSzpWBYtWhM2RLWVUhEWQrS1kISapAzHLTR1Vcfs7sx4TolVceXPIQmwrCWdGwwxNR1pUU6tjyXD0vO4YsWcrjB4HD8S/KtVcFP3sTs3ILsiwn3s0svOVsa8WIdeV3cvvLqCUOW0pLWpZ6eAzoej8c/AAAA//8DAKRNCYoQBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRTTWvcMBD9K0Zny5Fk2Wv7FpKWhlC6tKEtvY1Ho6yIV1pkOUkJ+9+LvBvS9NabeDBv3sfohXnYExvY5eHw4ZF8mlnJklshJVTLheZycyfaQXWDbCq1qVXbNr9Yydwt/WYD22hEiT3xmlri2oiGj7VFbgz1UkgjVKMzJ9zPbHhh4CpDjw6pCvN3irMLng3sh/MmPOXd4CqcwmKqGCa68XMCj1nMNob7CHuK2yshqxjGkMBN1RQQptPYTHNmq5xhA2s2JEalDRdADdd1v+HjZmOzqsYKQmU7OI05nyh6mKrZPLwJMiF5SjioStWV4Kpnx5IZSJA9jDDT3e9DlrVmdp3xcoXX5/DCHimyQZWv6Z7oLnByFxj2e/Dmwjrv5h0r2SGGA8XkaM1ntTxNkFzwxXnJ1eTIJ1ayL9+K7QTJhrh/F9q3k/Wb/3D+GXDnPBU312vTGg3YnpsaBdcWFe9NK3jf6bEfhRRWSVayq+CT80tY5uLGJ7qPq0o2sI8wzXTSdxlx5xJhWmKW/rPN5dOzS1fBZCDzbGMwC6biLW4pKlFJUWeOJR2WVHwl4yJhouzpLi5n+n9GVKuEyMqWGMmnYgtpV3yCeccGRk0tEboRhRV6rOsOOxQWlEUS0IAehRWdhdqq1ki10RZQjh0pFECmt23WndstTgdl6lF2CLxruprrXgreNSB5p1FZNNI2ZN7FWnyZ8lyPgL1aS9CGays73svRctu2jdF52fo9XiM5N647VrJbip6mvyx/dhjDHGwqztUX70L4uvj8c4v1DJ6c589r+NcBHygWuTxwPt/lua/j8Xj8AwAA//8DAM+oZWsABAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRUTU/kOBT8K5GvmwR/O8mNbRgNGjGg6dbsam/+eAYvwWk5DixC/d9XTsMMMNrDXqLoyfVcr6r8nlHU94AGdLrfnz9AzDOqUQ5riWIqG8wbonZYDrQbiGipoj2j8i9Uo/AFntCAFLeW2B4aBhIa7rBoDPO2cQ56gonDVPDSU9/MaHhGOrQOHoKFdpq/Q5rDFNGA/gjRTY/lbh1aO06La9M0wkWcs462kLlO003S95CuN5i0aTJT1mFsx8nq8QibYS7d2uDQgIQCbCh3DdYgGs561RilfGElPAZLfaePsBAzpKjHdnZ3Pwm5KUfIdqAtZS1uaI8ONXI66zKD0TPsnvaF1qrZWanXa3n9HZ7RAyQ00PpV3WO7EzuGk/vZLGF0J+sX1Wifpj2kHGCVZ514HHUOU6xe7tiMAWJGNfq9QLaLtTDPaECf9DjDa/k83oQIn4pEj1O6+3q8t/16vkN1Ee9vsPla59via0cFldb0PXW6I56BYUJQLpR0XHgpu64XHmOpOoYp4dp3XFmwQljuPVGoRlfb6nrU2U/p/p1726MHF//Dgu3p5jxqM4L7ONJOpxvIpZMUBpjvqDRSO92zzhMNrHfWMCmgM8p1oBSjTFthcUcsUUToXgmhJKME1ehS29sQobo4W4PNrdO+bxyzuOHe0qZ3Ejd9x01vMMF+xWymmENcpmWuLmKGm7S68obl1bY6TfY2ZLB5SUXvP2XJ+nWa3GJz9TNOBLe4JZgV0JL3S66+gQsJbF7H3qXlpd8HCJUU40JlSQliroqD1Wc9FxtBMGJ1Zyz2mBvGOttZ7DX1FrAWmhvscec181Q6QhX32hLTAbVYg+u9RDWCkt5qfTAY81560TVUCGg4I6IxjqkGG0MUV9r0Xr3TsboaC6632vZ09Za7hnvSNT0xvvFSCsfLZevzf5PRNyN2RRXSKrkq8yrbS+x59x73eZpLGL5vN5Mran2BFGF8o9hlsGmaJ5+rl0BW7zR80+oszPtRP/3C5DdLOROWwY/zm1uwd7/m89sSy5Ks1qA/htj8sxp/Ntk7SFUJjg6xrIAfiMtlzGF3m0A7cJeTg49NDzW6Bz0vCe7XNbwugwhppXG2HMN3ES/DOIYZ7BTdjAYisWgZ5d0L3f8+J1mrFGOHw+HwLwAAAP//AwDo0RA69AUAAA==
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSUW2vcMBCF/4qZZ8uRZfn6FjYtDSVkSUJb+qbLKBHxSosk50LY/17k3ZC2L6UvQsg+ozPfGfsNnNghTHC+3396QpcilJDsesQo6wjlpO7vaDexYarbivWUMTr+hBLsV3yFCXquVK1GJA12SLimLZGNUURrHGtaa8panmuK+wjTGwhbaXyyCisfv2GI1juY4Lt12j/nu4Wt1OwXXQU/46WLSTiVzWyDvw9ih2G7oXUVvPRJ2LmavRLzURYx5mqV1TBB2yOVjGtCBbaEN2NPZN+b7Ko1FBUzgzjKrEsYnJirqB8/DGmfHCY1sYo1FSVshEMJWiSRe5Ai4t3rPttamV3k83I9XrfTGzxhgImV73SP5c7UbM92US521mfHNYn4GNfVCJV8eIUS9sHvMSSLK7DzGHEn59c7ER8/H9/J2/jpBdWSUG/84lLOAUpYec2zSNa74uRwM1t0aX2YgnXRqn9VynFd3xbbWSTjw+6PeG6PkC//g/GVUA/WYXF5sc4UV1qYkehGUcKNYmTUHSXjwOUoaU0Nq6GEjXfJusUvsbh0Ce/D2hJM8FnMEY/+zoN6sAlVWkLu80eXfW+D14tKxUeSNa1oVdMmi5a0X1Jxg9oGVAlzE3dhOdX7S8I6Rmm2soSALhVbkR6KLyI+wATYNrUSg1TUUC6bZlCDokYwo5CKVnBJDR2MaAzrdM16boSq5YBMUYF6NB2UgHlwinVWu57Sehg0abuREs56TeTQIel4O6DsOFKZFR8ci+s560Yl1MhW6lwTbuqBjLU0xHRdq3m+bP3y3pGc5oEPUMJXDA7n31q+sir46E0qTlkXf0C4WVz+KRRr7s/WkZeV9oVXjxiKnJawLo/8KaDD4XD4BQAA//8DAL7FbEpbBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzUyJ1C+wWNYIgi9hoi95G5NAmohUXFLVpYOx/L6i1kTq33IgBZvjOM+/MC1ngiGQkH06n3864lJW0pMQ9JJjoKVOUD4+sH4UZJe8Gxbhg6h/SkvgRv5ORDMo57ixSiT1S5ZmmkwyOeo+WM+6Z0KrWhKeVjC8EYufxHB12af0T8xrTQkbyV1x8+lb/hti5OW2+y2nG+2UtsLgq5pDTU4Yj5sMt411OUyoQ525ODuZr2oprrdZFT0Yi1aC1AEOFEZaqoAUF7zWdmGR26AfbD/qaFpeCeYG5W/3XH4J8KgsWN4pOyI5RYcmlJR4K1B4mWPHx+6nK2pnd1Xi7h/fn+ELOmMko2je613I3bo436zbNeMb5BHnFfOPS8QiLJy055XTCXCLunM6Yp7TGUhE7N4AxnHsDg9KDN1ILOXjJ0Bs2aG+9hV71QTitg5+MHVRQXnDle1RqGkhLdpLzDCWmpXnVfjtHXAppyeeH5jBDCSkf383i4Ur0/heAVtlkJNpokHxAUN6g9aHXKKyWhjNUCuQgPIMQVC+d75ntA4LwTjk3cCG8lT1pySdwz3HB5v5ut6JyHoKlXjpGVXCCWt8zao2a7MQ4C4KTltympcRlS9va3C8Fn/LeLxnJ7zCveO30Q3bPsaArW64Q/u6rOw85+c2V5ocBOOtYx5msSVs5baX5gj5mdAUrjse8vdb7KUX0grEqZcsZl9IcoDw3f8D6TEaCWnIHZnIsMDVJaZxxLIAIDhloUBMLzASQQfSei0EFcHwyKBwD9DZUKlj91uwWD3ZQjkmgXE6WKgycTj4EqllQclKuMn/Hsfk81zzrwFlhBzoNylMVuKGWT4GGvtde1c/2hX1D8moWZUhLPmJecP5fy5+iy2lNoTSvrmneQfiyLfWWNLuDvsWF/rvTvkvuK+amTgviUjfldUCXlhwR1i3jcT9F4ws51DVpHveLJFTXW6lb8lAgl+30Fu47Zs3lcrn8BwAA//8DAE8bYwfOBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACoxUTW/cNhD9KwLPokxR1Ad1S+0GXaSujaybFr2NyOGaMJdcUJRTw9j/HlC7rrNpD70J1PDNm/fe8JV42CMZyYfD4edn9GkmJUl2PeKMd5QJWvcPrBv5MDZ11feSc8n+IiWxn/CFjKQXStVKIm2wQyo0a+nUGEW1RlmzWjPeiowJu5mMrwRspfHZKqzC/AXjbIMnI/nDeh2+5t5gK+XCoqsYHG78nMCrTOY+hl2EPcb7a1ZXMUwhgXWVCwrc6dqMc0arrCYjaUTfthwGygcuqTAtp6B1SyfWMNl3vez69nTN+oTRg6tm/fROSIfkMamRV7ypGOWSHEuiIUGeYYIZH14Omdaq2U0+L9fj9XN8Jc8YycjLN3VPcFfK2av9PC3W6SsXdjvrd9fBG7tbIqTcuCSHGA4Yk8VVrbtt8c6pZhWreMcZIyW5BfVoPRabm+LO5YmlAiW57OnUC02FqQcq68lQ03WtFlwxWH34hNGj+w711qoY5mBScTahuOhzHXyyfgnLXGx8wt2Z6Eg+gpsxFywxok/FPaTH4heYH8lIsG1qBcOkmGFiappBDYoZ4EYhgxbExAwbDDSGd7rmvTCg6mnATBK1NB0pyQPGvfXgfg27Xdbyn36XP27QwOLSNixxjcmsn0hJfrIe4sup4vcZ9bnqt5MZb0ibnC7n1oGKs5/XzqJPF/qumyCUBiOpbhSjwihOpe4YlYOY5MRqZnhNypxRvaj0o2U1a0hJPi8+71WxyWZ9tZ7+3YkfqH7HDXOuijXKk5GtknKgIKeWit5IOgAHalCZWnSD6MCQktwE9YSxyH6B9Rdgd9viQ1SPNqFKS8xj/rn2vtsW9w6SCXF/sYN3SzosqfiM2kZUCTOLh7hkqI/W4b/Ivs191lAMp9zM4a32C8YpzDbl9+LWertfd3Z7WthVkP+5rxeo76z+MxNkJLCkQI7H4/EbAAAA//8DAI0n1yTnBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzSxSpW2C3qBsEWcRGWvQ2Ioc2Ea24oKhNA2P/e0F5jdS99UYM8M7Hw3fmhSxwRDKSD6fTL2dcykpaUuIeEkxoyhTlwyPTozCj5N3AreSm/4u0JH7EH2Qkg3KOO4tUokaqPOvpJIOj3qPljHsmelVzwtNKxhcCsfN4jg67tH7FvMa0kJH8ERefvtfaEDs3p813Oc14v6wFFlebOeT0lOGI+XDLeJfTlArEuZuTg/lVtuJas3XRk5FINfS9AEOFEZaq0AsK3vd0YpLZQQ9WD/2rLC4F8wJzt/pvPxvyqSxY3Cg6ITtGhSWXlngoUGeYYMXHH6fa1s7srsbbPbw/xxdyxkxG0b7RfU134+Z4U9JpxjPOJ8gr5huXjkdYPGnJKacT5hJx57SPPs9QYlqaa7HbOeJSSEs+PzSHGUpI+fgO3sMrgvv/QeCMeSIj6U0Pkg8Iyhu0Pugehe2l4QyVAjkIzyAEpaXzmlkdEIR3yrmBC+Gt1KQlT3OaYP593flZwSbj2SC0QIVWKK2tYygNhn5A5kHrSRtnvTSDUMYbCRaA2wkHZ7WrjvkE7jku2Nzf7V5UzkOw1EvHqApOUOs1o9aoyU6MsyA4acltWkpctrStzf1S8Cnv/MhIfoV5xVdyH7J7jgVd2XKF+qeuxQ45+c2V5qcDOOtYx5msoq2cttJ8QR8zuoIV72Pervn+IxFaMFZb2XLGpTQHKM/Nb7A+k5FgL7kDMzkWmJqkNM44FkAEhwx6UBMLzASQQWjPxaACOD4ZFI4BehsqZayGa3aPm2GSYnJIg2eeql4ANag8ZTAEqftgDEzvODaf56qzDpwVdqDToDxVgRtq+RRo0Lr3qhbbN/YNydV8ypCWfMS84PyvkT9Fl9OaQmmuLmzeQfiyLfWYNLsjv8eF/r3TvkvuG+am/hbEpa7K9YMuLTkirFvG436LxhdyqHvSPO4nSahOW9m35KFALtvpLaw7Zs3lcrn8AwAA//8DABTjbWrPBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRUTU/kOBT8K5GvmwR/J86NbRgNGjGg6dbsam/+eAYvwWk5DixC/d9XTsMMMNrDXqLoya9cr6r8nlHU94AGdLrfnz9AzDOqUQ5riWIqG8wb0u2wHGg/MNoSIhln3V+oRuELPKEBddxaYhU0DCQ03GHRGOZt4xwogonDVPCCqW9mNDwjHVoHD8FCO83fIc1himhAf4Topsdytw6tHafFtWka4SLOWUdbyFyn6Sbpe0jXG0zaNJkp6zC242T1eGybYS5obXBoQIx3QlDdN7SnquFe0EY7JxqDGVad7JTsxLEtxAwp6rGd3d1PQm7KEbIdaEtZixuq0KFGTmddZjB6ht3TvtBaNTsr9Xotr7/DM3qAhAZav6p7hDuxYzi5n80SRneyflGN9mnaQ8oBVnnWicdR5zDF6uWOzRggZlSj30vLdrEW5hkN6JMeZ3gtn8ebEOFTkehxSndfj/e2X893qC7i/Q02X+t8W3ztqaDSGqWo0z3xDAwTgnLRSceFl7LvlfAYy65nmBKufc87C1YIy70nHarR1ba6HnX2U7p/59726MHF/7Bge7o5j9qM4D6OtNPpBnKJmMSdwQ57bISSTBGhNOkFLfiEOqqs0VjgjlIhOuwwxqojknoqiTcEM1SjS21vQ4Tq4mwNNrdOe9U4ZnHDvaWNchI3qudGGUywpwTVaDPFHOIyLXN1ETPcpNWVNyyvttVpsrchg81LKnr/KUvWr9PkFpurn3EiuMXtkcnVkvdLrr6BCwlsXsfepeUF70MLlRTjQmVJCWKuioPVZz0XG0EwYnVvLPaYG8Z621vsNfUWsBaaG+xx7zXzVDpCO+61JaYHarEGp7xENYKS3mp9MNoIbYxkDVXSNNwy1vTKmIZ0wjBPvfHEvNOxuhpLn7LaKqq6xnTcNdyTvlHE+MZLKRwvl63P/01G34zYF1VI28lVmVfZXmLP+/d9n6e5hOH7djO5otYXSBHGN4pdBpumefK5eglk9U7DN1BnYd6P+ukXJr9ZypmwDH6c39yCvfs1n9+WWJZktQb9McTmn9X4s8neQapKcHSIZQX86Lhcxhx2twm0A3c5OfgIeqjRPeh5SXC/ruF1GURIK42z5Ri+i3gZxjHMYKfoZjQwzlrW9+SF7X8eU6plivLD4XD4FwAA//8DAMCgE3DyBQAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpSTTWvcMBCG/4qZs+XIsvx5C0lLQyld2tCW3uTRKBHxSoskpw1h/3uRd0Oa3noRw6AZvfO8o2dwak8wweXh8O6RXIpQQrJbSnDRMS5Z3d/ybhLD1Iiqrhs+NuNPKMF+pCeYoJeINY7EGuqISc1bNjcGmdY01rzWXLQy91R3EaZnULbS9GiRKh+/UYjWO5jgu3Xa/8pvK1vh4lddBb/QjYtJOcxidsHfBbWnsLvidRX87JOyS7V4VMupLFLM3SqrYYJG9m0r1MDEIEYmTSuY0rplM2/42Hf92PXtqcy6RMGppYr64VWQ9slRwklUoqk4EyMcS9AqqTzDrCLdPh2yrI3Zdc6XW3oLp2d4pACTKF/ontpd4GIv9nFe7aIvTmdS8SFup1GYfHiCEg7BHygkSxuwyxhpPy9Ptyo+vD/dyWF895twTaSv/OoSTFBDCRuvZVHJelecFV4tllyCEj5/LXaLSsaH/RviX0/cbv4D2yeF99ZRcXO9rYlErczIdIOcSYOCjbrjbBzkPM685kZkbVfeJetWv8bixiW6C5tKmOC9WiKd9F0GvLeJMK0hS//R5c3ZBa9XTMWrOTWveFXzJhet6bCm4gtpGwgT5SFuw3ru90+J6ATnWcoaArlU7FS6Lz6oeA8TUNvUqIYZueFybpoBB+RGCYPEVavkzA0fjGqM6HQtemkU1vNAArkiPZoOSqC8C8W2flJj33SmZnNvWiZb6tlg2oYh72gwbUeIebRXjsXnJdeNqHAUY8/mXmomTT2wsZ4NM13Xapkf2z7TC5KzxXKAEj5ScLT8NfIni8FHb1Jx9rp4A+HL6vI/Lzbff1nHfm+0rz0+UCiyW8q6vMVng47H4/EPAAAA//8DAIkoyW8uBAAA
|
||||
@ -0,0 +1,5 @@
|
||||
https://dc.services.visualstudio.com/v2/track
|
||||
Content-Type:application/x-json-stream
|
||||
Content-Encoding:gzip
|
||||
|
||||
H4sIAAAAAAAACpRTTU/cMBD9K9Gc42A7zodzQwtVEUKsALVVb449BotgrxyHD6H975Wziyi99WJZI72Z9968eQevnhAGON3tzp/RpxlKSG4tccpbQgVh3R1tB94PNa8YE3Xf1r+hBHeJbzBAJ7RmWiKpsUUiDG3IWFtNjEHJKDOUNyL3VPczDO+gXGXw2WmswvwD4+yChwF+Om/CS56tXKWnsJgqhgkv/JyU15nMNob7qJ4wbjeUVTGMISk3VVPQajrAZpxzt8oZGKAWXdNw1RPec0mEbThRxjRkpDWVXdvJtmsOMOcTRq+majaPn4RMSB6THnjF64oSLmFfglFJZQ2jmvHubZdprZ6d5Xq5ltfv8A7PGGHg5Ye7h3YnenInT/O4uMmcHN6k5scsexfDDmNyuJq06p4mlVzwxXHSZnLoE5RwfVtsJ5VsiE9fnLs96L/4D/l3efr5K+olodmExScYgEEJV0o/OI/FxdmaA6GNspKYWlMirOZEmpYS2YtRjpRRyzNmE3xyfgnLXFz4hPdxpQ8DfFPTjAfip1E/uIQ6LTFr+tXmaGxjMItOxaf7jFa0YrTOoCXtllTcoHERdcKs7i4ux37/QHjLKc1UlhjRp2Kr0kPxXc0PMAA2NdOqHzW1VIx13eteU6u41UhVo8RILe2tqi1vDeOdsEqzsUeuqUIjbQslYF52seYLragNty1hvLFEdF1NRm2RjCOXHI00rcqR+PSxuJ4yTmqlJZcdGTthiLCsJ5KNlti2bYzIw9Zr+bDkuHvRQwmXGD1Of0m+cjqGOdhUHENQfDHhZvH5kIs1EC/Ok9fV7bOgHzEWeVvK+RzT44L2+/3+DwAAAP//AwBMR4vFDwQAAA==
|
||||
6
.vscode/settings.json
vendored
6
.vscode/settings.json
vendored
@ -60,12 +60,12 @@
|
||||
"*.asset": "yaml",
|
||||
"*.meta": "yaml",
|
||||
"*.prefab": "yaml",
|
||||
"*.unity": "yaml",
|
||||
"*.unity": "yaml"
|
||||
},
|
||||
"explorer.fileNesting.enabled": true,
|
||||
"explorer.fileNesting.patterns": {
|
||||
"*.sln": "*.csproj",
|
||||
"*.sln": "*.csproj"
|
||||
},
|
||||
"dotnet.defaultSolution": "mario-like-platformer.sln",
|
||||
"dotnet.defaultSolution": "Mario-like platformer.slnx",
|
||||
"chatgpt.openOnStartup": true
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5a27426cd347d554283a078504311f0b
|
||||
folderAsset: yes
|
||||
timeCreated: 1469195114
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,57 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: mtl_lava_diffuse
|
||||
m_Shader: {fileID: 4800000, guid: 036402a4b0d5f4342bbf1b572714f64e, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 2000
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Distort:
|
||||
m_Texture: {fileID: 2800000, guid: 0ebfaeff4eb7328498165095f9cfc32f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LavaTex:
|
||||
m_Texture: {fileID: 2800000, guid: 93a726948508cc14eab67fb1abe2daa8, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 7.739765, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 348fa4d278c53ad4dacd07df1e63a248, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0.45699874, y: 0}
|
||||
- _MainTex2:
|
||||
m_Texture: {fileID: 2800000, guid: bef54341b6d21864c82d47f3bed4c7db, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0.28963017, y: 0}
|
||||
- _MainTex_Add:
|
||||
m_Texture: {fileID: 2800000, guid: 1a5d8cd24a805cd44b00c7f1e1e4d287, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 1.5691679, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Displacement: 0.0375
|
||||
- _DistortX: 1
|
||||
- _DistortY: 0
|
||||
- _RefractTexTiling: 1
|
||||
m_Colors:
|
||||
- _ChannelFactor: {r: -0.3281326, g: 0.5920941, b: 0.7360384, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 0.07058824}
|
||||
- _SpeedStrength: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@ -1,15 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5b6432eb5c5ecd41a1c5065d2686911
|
||||
timeCreated: 1469219568
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Materials/mtl_lava_diffuse.mat
|
||||
uploadId: 128561
|
||||
@ -1,57 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: mtl_lava_distort
|
||||
m_Shader: {fileID: 4800000, guid: 6a151f652f5ba03458e9a7cd03ae88e8, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Distort:
|
||||
m_Texture: {fileID: 2800000, guid: 0ebfaeff4eb7328498165095f9cfc32f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LavaTex:
|
||||
m_Texture: {fileID: 2800000, guid: 93a726948508cc14eab67fb1abe2daa8, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 4.551285, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 348fa4d278c53ad4dacd07df1e63a248, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex2:
|
||||
m_Texture: {fileID: 2800000, guid: bef54341b6d21864c82d47f3bed4c7db, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0.28963017, y: 0}
|
||||
- _MainTex_Add:
|
||||
m_Texture: {fileID: 2800000, guid: 1a5d8cd24a805cd44b00c7f1e1e4d287, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 1.5691679, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Displacement: 0.0375
|
||||
- _DistortX: 1.0714285
|
||||
- _DistortY: 0
|
||||
- _RefractTexTiling: 1
|
||||
m_Colors:
|
||||
- _ChannelFactor: {r: -0.3281326, g: 0.5920941, b: 0.7360384, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 0.07058824}
|
||||
- _SpeedStrength: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 787cb25de3401c44b939f2599cda764c
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Materials/mtl_lava_distort.mat
|
||||
uploadId: 128561
|
||||
@ -1,57 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: mtl_lava_distort_transparent
|
||||
m_Shader: {fileID: 4800000, guid: 0803b816564bc844b9300c6e1572fcff, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Distort:
|
||||
m_Texture: {fileID: 2800000, guid: 0ebfaeff4eb7328498165095f9cfc32f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LavaTex:
|
||||
m_Texture: {fileID: 2800000, guid: aed369d136cf0174e8e04dfb34567e6a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 7.739765, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 348fa4d278c53ad4dacd07df1e63a248, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex2:
|
||||
m_Texture: {fileID: 2800000, guid: bef54341b6d21864c82d47f3bed4c7db, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0.28963017, y: 0}
|
||||
- _MainTex_Add:
|
||||
m_Texture: {fileID: 2800000, guid: 1a5d8cd24a805cd44b00c7f1e1e4d287, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 1.5691679, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Displacement: 0.0375
|
||||
- _DistortX: 1.0714285
|
||||
- _DistortY: 0
|
||||
- _RefractTexTiling: 1
|
||||
m_Colors:
|
||||
- _ChannelFactor: {r: -0.3281326, g: 0.5920941, b: 0.7360384, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 0.07058824}
|
||||
- _SpeedStrength: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c11e54477bc94744a2fa3433d9fa306
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Materials/mtl_lava_distort_transparent.mat
|
||||
uploadId: 128561
|
||||
@ -1,55 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: mtl_lava_simple
|
||||
m_Shader: {fileID: 4800000, guid: bec21333d7f8cf84cb75cab616acf589, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Distort:
|
||||
m_Texture: {fileID: 2800000, guid: f9a73fa499a3f48499ece92e4e81aa05, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LavaTex:
|
||||
m_Texture: {fileID: 2800000, guid: 93a726948508cc14eab67fb1abe2daa8, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 4.551285, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 348fa4d278c53ad4dacd07df1e63a248, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex2:
|
||||
m_Texture: {fileID: 2800000, guid: bef54341b6d21864c82d47f3bed4c7db, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0.28963017, y: 0}
|
||||
- _MainTex_Add:
|
||||
m_Texture: {fileID: 2800000, guid: 1a5d8cd24a805cd44b00c7f1e1e4d287, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 1.5691679, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Displacement: 0.0375
|
||||
- _RefractTexTiling: 1
|
||||
m_Colors:
|
||||
- _ChannelFactor: {r: -0.3281326, g: 0.5920941, b: 0.7360384, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 0.07058824}
|
||||
- _SpeedStrength: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6042eaad9823b6f488f160b2bce47ac7
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Materials/mtl_lava_simple.mat
|
||||
uploadId: 128561
|
||||
@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98de54e952a28364c84cbacefd011abb
|
||||
folderAsset: yes
|
||||
timeCreated: 1469195114
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,106 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &154346
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 421958}
|
||||
- component: {fileID: 3393480}
|
||||
- component: {fileID: 2355910}
|
||||
- component: {fileID: 11457130}
|
||||
m_Layer: 0
|
||||
m_Name: Lava_diffuse
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &421958
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 154346}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
|
||||
m_LocalPosition: {x: 1, y: 0, z: -0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!33 &3393480
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 154346}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2355910
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 154346}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: c5b6432eb5c5ecd41a1c5065d2686911, type: 2}
|
||||
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_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!114 &11457130
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 154346}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e3d28cb150ad86f4a8100312a4aea7a1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
uvAnimationRate: {x: 0.06, y: 0}
|
||||
textureName: _LavaTex
|
||||
@ -1,15 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 86672f35e84daff4699b96a3c82ee675
|
||||
timeCreated: 1469222714
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Prefabs/Lava_diffuse.prefab
|
||||
uploadId: 128561
|
||||
@ -1,106 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &100000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 400000}
|
||||
- component: {fileID: 3300000}
|
||||
- component: {fileID: 2300000}
|
||||
- component: {fileID: 11400000}
|
||||
m_Layer: 0
|
||||
m_Name: Lava_distort
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &400000
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!33 &3300000
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2300000
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 787cb25de3401c44b939f2599cda764c, type: 2}
|
||||
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_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e3d28cb150ad86f4a8100312a4aea7a1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
uvAnimationRate: {x: 0.06, y: 0}
|
||||
textureName: _LavaTex
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c9fb993626aaf8488be64eb9feadbbc
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Prefabs/Lava_distort.prefab
|
||||
uploadId: 128561
|
||||
@ -1,106 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &100000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 400000}
|
||||
- component: {fileID: 3300000}
|
||||
- component: {fileID: 2300000}
|
||||
- component: {fileID: 11400000}
|
||||
m_Layer: 0
|
||||
m_Name: Lava_simple
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &400000
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!33 &3300000
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2300000
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 6042eaad9823b6f488f160b2bce47ac7, type: 2}
|
||||
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_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e3d28cb150ad86f4a8100312a4aea7a1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
uvAnimationRate: {x: 0.06, y: 0}
|
||||
textureName: _LavaTex
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2debcb3c417b07419457484a835eb7d
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Prefabs/Lava_simple.prefab
|
||||
uploadId: 128561
|
||||
@ -1,106 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &100000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 400000}
|
||||
- component: {fileID: 3300000}
|
||||
- component: {fileID: 2300000}
|
||||
- component: {fileID: 11400000}
|
||||
m_Layer: 0
|
||||
m_Name: Lava_transparent
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &400000
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
|
||||
m_LocalPosition: {x: 1, y: 0, z: -0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!33 &3300000
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2300000
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4c11e54477bc94744a2fa3433d9fa306, type: 2}
|
||||
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_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 100000}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e3d28cb150ad86f4a8100312a4aea7a1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
uvAnimationRate: {x: 0.06, y: 0}
|
||||
textureName: _LavaTex
|
||||
@ -1,15 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 39639071f8fd3cd4da6c9e24297512a2
|
||||
timeCreated: 1469195249
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Prefabs/Lava_transparent.prefab
|
||||
uploadId: 128561
|
||||
27
Assets/External/Lava_Flowing_Shader/ReadMe.txt
vendored
27
Assets/External/Lava_Flowing_Shader/ReadMe.txt
vendored
@ -1,27 +0,0 @@
|
||||
***********************************
|
||||
Lava Flowing Shader
|
||||
Version 1.2
|
||||
Date 22 July 2016
|
||||
For Unity 5.3.5 or up
|
||||
|
||||
by Moonflower Carnivore
|
||||
***********************************
|
||||
|
||||
|
||||
Lava Flowing Shader allows you to create lava flowing effect on mesh/plane.
|
||||
It simulates the liquid distortion effect that a simple scrolling UV is
|
||||
incapable of. Please watch our youtube video of the effect:
|
||||
https://www.youtube.com/watch?v=ItXkajNdp44
|
||||
|
||||
|
||||
For detailed instructions about using this Lava Flowing Shader please
|
||||
read our online google doc here:
|
||||
https://docs.google.com/document/d/1BkCaZLZ2feWL14LdHH_6GFnwTE3WilYUUSN5DMCbObE/edit?usp=sharing
|
||||
|
||||
|
||||
We are Moonflower Carnivore and we provide game assets like particle
|
||||
effects and simple shaders. Please like our Facebook page
|
||||
https://www.facebook.com/MoonflowerCarnivore
|
||||
and rate our packages in Unity Asset Store if you like our work!
|
||||
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85580c0999f852645a0f8bf54b7116bb
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/ReadMe.txt
|
||||
uploadId: 128561
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b5197d2a37c07c4ea690670a25a282d
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Scenes/FLowingLava.unity
|
||||
uploadId: 128561
|
||||
@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef4e4c1c038208c4da515c42b8b133bb
|
||||
folderAsset: yes
|
||||
timeCreated: 1469195114
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,20 +0,0 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
public class ScrollingUVs_Layers : MonoBehaviour
|
||||
{
|
||||
//public int materialIndex = 0;
|
||||
public Vector2 uvAnimationRate = new Vector2( 1.0f, 0.0f );
|
||||
public string textureName = "_MainTex";
|
||||
|
||||
Vector2 uvOffset = Vector2.zero;
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
uvOffset += ( uvAnimationRate * Time.deltaTime );
|
||||
if( GetComponent<Renderer>().enabled )
|
||||
{
|
||||
GetComponent<Renderer>().sharedMaterial.SetTextureOffset( textureName, uvOffset );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e3d28cb150ad86f4a8100312a4aea7a1
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Scripts/ScrollingUVs_Layers.cs
|
||||
uploadId: 128561
|
||||
@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 794b02ca7762ed94aa4db287ff5bee67
|
||||
folderAsset: yes
|
||||
timeCreated: 1469195114
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,60 +0,0 @@
|
||||
// Simplified Diffuse shader. Differences from regular Diffuse one:
|
||||
// - no Main Color
|
||||
// - fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH.
|
||||
|
||||
Shader "Lava Flowing Shader/Diffuse/Distort"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_DistortX ("Distortion in X", Range (0,2)) = 1
|
||||
_DistortY ("Distortion in Y", Range (0,2)) = 0
|
||||
_MainTex ("_MainTex RGBA", 2D) = "white" {}
|
||||
_Distort ("_Distort A", 2D) = "white" {}
|
||||
_LavaTex ("_LavaTex RGB", 2D) = "white" {}
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType"="Opaque" }
|
||||
LOD 150
|
||||
|
||||
CGPROGRAM
|
||||
#pragma surface surf Lambert noforwardadd
|
||||
|
||||
sampler2D _MainTex;
|
||||
sampler2D _Distort;
|
||||
sampler2D _LavaTex;
|
||||
fixed _DistortX;
|
||||
fixed _DistortY;
|
||||
|
||||
struct Input
|
||||
{
|
||||
float2 uv2_LavaTex;
|
||||
float2 uv_MainTex;
|
||||
};
|
||||
|
||||
void surf (Input IN, inout SurfaceOutput o)
|
||||
{
|
||||
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
|
||||
fixed distort = tex2D(_Distort, IN.uv_MainTex).a;
|
||||
|
||||
fixed2 uv_scroll;
|
||||
uv_scroll = fixed2(IN.uv2_LavaTex.x-distort*_DistortX,IN.uv2_LavaTex.y-distort*_DistortY);
|
||||
|
||||
fixed4 tex2 = tex2D(_LavaTex,uv_scroll);
|
||||
c.rgb = lerp(tex2.rgb,c.rgb,c.a);
|
||||
|
||||
o.Albedo = c.rgb;
|
||||
|
||||
//Use the below two lines if you want the rock part be diffuse but lava part is unlit
|
||||
//o.Albedo = c.rgb*c.a;
|
||||
//o.Emission = c.rgb*(1-c.a);
|
||||
|
||||
|
||||
o.Alpha = c.a;
|
||||
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Fallback "Mobile/VertexLit"
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 036402a4b0d5f4342bbf1b572714f64e
|
||||
timeCreated: 1469219369
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Shaders/Diffuse_Lava_Distort.shader
|
||||
uploadId: 128561
|
||||
@ -1,71 +0,0 @@
|
||||
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
||||
|
||||
Shader "Lava Flowing Shader/Unlit/Distort"
|
||||
{
|
||||
Properties {
|
||||
//_Color ("Main Color", Color) = (1,1,1)
|
||||
_DistortX ("Distortion in X", Range (0,2)) = 1
|
||||
_DistortY ("Distortion in Y", Range (0,2)) = 0
|
||||
_MainTex ("_MainTex RGBA", 2D) = "white" {}
|
||||
_Distort ("_Distort A", 2D) = "white" {}
|
||||
_LavaTex ("_LavaTex RGB", 2D) = "white" {}
|
||||
}
|
||||
|
||||
Category {
|
||||
Tags { "RenderType"="Opaque" }
|
||||
|
||||
Lighting Off
|
||||
|
||||
SubShader {
|
||||
Pass {
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _MainTex;
|
||||
sampler2D _Distort;
|
||||
sampler2D _LavaTex;
|
||||
|
||||
struct appdata_t {
|
||||
fixed4 vertex : POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f {
|
||||
fixed4 vertex : SV_POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
fixed2 texcoord1 : TEXCOORD1;
|
||||
};
|
||||
|
||||
fixed4 _MainTex_ST;
|
||||
fixed4 _LavaTex_ST;
|
||||
|
||||
fixed _DistortX;
|
||||
fixed _DistortY;
|
||||
|
||||
v2f vert (appdata_t v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
|
||||
o.texcoord1 = TRANSFORM_TEX(v.texcoord,_LavaTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 tex = tex2D(_MainTex, i.texcoord);
|
||||
fixed distort = tex2D(_Distort, i.texcoord).a;
|
||||
fixed4 tex2 = tex2D(_LavaTex, fixed2(i.texcoord1.x-distort*_DistortX,i.texcoord1.y-distort*_DistortY));
|
||||
tex = lerp(tex2,tex,tex.a);
|
||||
|
||||
return tex;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a151f652f5ba03458e9a7cd03ae88e8
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Shaders/Unlit_Lava_Distort.shader
|
||||
uploadId: 128561
|
||||
@ -1,72 +0,0 @@
|
||||
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
||||
|
||||
Shader "Lava Flowing Shader/Unlit/Distort Transparent"
|
||||
{
|
||||
Properties {
|
||||
//_Color ("Main Color", Color) = (1,1,1)
|
||||
_DistortX ("Distortion in X", Range (0,2)) = 1
|
||||
_DistortY ("Distortion in Y", Range (0,2)) = 0
|
||||
_MainTex ("_MainTex RGBA", 2D) = "white" {}
|
||||
_Distort ("_Distort A", 2D) = "white" {}
|
||||
_LavaTex ("_LavaTex RGBA", 2D) = "white" {}
|
||||
}
|
||||
|
||||
Category {
|
||||
//Tags { "RenderType"="Opaque" }
|
||||
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
Cull back Lighting Off ZWrite Off
|
||||
|
||||
SubShader {
|
||||
Pass {
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _MainTex;
|
||||
sampler2D _Distort;
|
||||
sampler2D _LavaTex;
|
||||
|
||||
struct appdata_t {
|
||||
fixed4 vertex : POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f {
|
||||
fixed4 vertex : SV_POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
fixed2 texcoord1 : TEXCOORD1;
|
||||
};
|
||||
|
||||
fixed4 _MainTex_ST;
|
||||
fixed4 _LavaTex_ST;
|
||||
|
||||
fixed _DistortX;
|
||||
fixed _DistortY;
|
||||
|
||||
v2f vert (appdata_t v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
|
||||
o.texcoord1 = TRANSFORM_TEX(v.texcoord,_LavaTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 tex = tex2D(_MainTex, i.texcoord);
|
||||
fixed distort = tex2D(_Distort, i.texcoord).a;
|
||||
fixed4 tex2 = tex2D(_LavaTex, fixed2(i.texcoord1.x-distort*_DistortX,i.texcoord1.y-distort*_DistortY));
|
||||
tex = lerp(tex2,tex,tex.a);
|
||||
|
||||
return tex;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0803b816564bc844b9300c6e1572fcff
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Shaders/Unlit_Lava_Distort_Transparent.shader
|
||||
uploadId: 128561
|
||||
@ -1,64 +0,0 @@
|
||||
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
||||
|
||||
Shader "Lava Flowing Shader/Unlit/Simple"
|
||||
{
|
||||
Properties {
|
||||
//_Color ("Main Color", Color) = (1,1,1)
|
||||
_MainTex ("_MainTex RGBA", 2D) = "white" {}
|
||||
_LavaTex ("_LavaTex RGB", 2D) = "white" {}
|
||||
}
|
||||
|
||||
Category {
|
||||
Tags { "RenderType"="Opaque" }
|
||||
|
||||
Lighting Off
|
||||
|
||||
SubShader {
|
||||
Pass {
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _MainTex;
|
||||
sampler2D _LavaTex;
|
||||
|
||||
struct appdata_t {
|
||||
fixed4 vertex : POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f {
|
||||
fixed4 vertex : SV_POSITION;
|
||||
fixed2 texcoord : TEXCOORD0;
|
||||
fixed2 texcoord1 : TEXCOORD1;
|
||||
};
|
||||
|
||||
fixed4 _MainTex_ST;
|
||||
fixed4 _LavaTex_ST;
|
||||
|
||||
v2f vert (appdata_t v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
|
||||
o.texcoord1 = TRANSFORM_TEX(v.texcoord,_LavaTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 tex = tex2D(_MainTex, i.texcoord);
|
||||
fixed4 tex2 = tex2D(_LavaTex, i.texcoord1);
|
||||
|
||||
tex = lerp(tex2,tex,tex.a);
|
||||
|
||||
return tex;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bec21333d7f8cf84cb75cab616acf589
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Shaders/Unlit_Lava_Simple.shader
|
||||
uploadId: 128561
|
||||
@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f322c4288d0184a4d9b44d7945b17307
|
||||
folderAsset: yes
|
||||
timeCreated: 1469195114
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 266 KiB |
@ -1,62 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93a726948508cc14eab67fb1abe2daa8
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 7
|
||||
maxTextureSize: 512
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Textures/lava1.png
|
||||
uploadId: 128561
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 378 KiB |
@ -1,62 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aed369d136cf0174e8e04dfb34567e6a
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 12
|
||||
maxTextureSize: 512
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Textures/lava1_transparent.png
|
||||
uploadId: 128561
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 184 KiB |
@ -1,62 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 348fa4d278c53ad4dacd07df1e63a248
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 512
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Textures/lava2.png
|
||||
uploadId: 128561
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 50 KiB |
@ -1,62 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ebfaeff4eb7328498165095f9cfc32f
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 1
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 512
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 33635
|
||||
packageName: Lava Flowing Shader
|
||||
packageVersion: 1.2
|
||||
assetPath: Assets/Lava_Flowing_Shader/Textures/lava3.png
|
||||
uploadId: 128561
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -32,7 +32,7 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4445986152597778029}
|
||||
- {fileID: 8627206344477583323}
|
||||
- {fileID: 4479595212008154282}
|
||||
- {fileID: 675627477356491008}
|
||||
- {fileID: 7722770590907352781}
|
||||
m_Father: {fileID: 0}
|
||||
@ -40,7 +40,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 150}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8712991107362882286
|
||||
CanvasRenderer:
|
||||
@ -63,15 +63,15 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.7058824}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
@ -103,9 +103,9 @@ MonoBehaviour:
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_PressedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_DisabledColor: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
@ -120,13 +120,11 @@ MonoBehaviour:
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 6850433135119910662}
|
||||
m_TargetGraphic: {fileID: 0}
|
||||
symbolText: {fileID: 91819688666493321}
|
||||
backgroundImage: {fileID: 6850433135119910662}
|
||||
selectionHighlight: {fileID: 5330937721467949768}
|
||||
normalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedColor: {r: 0.2, g: 0.53333336, b: 0.74509805, a: 1}
|
||||
highlightColor: {r: 0.2, g: 0.53333336, b: 0.74509805, a: 0.3}
|
||||
highlightColor: {r: 0.22352943, g: 0.9803922, b: 1, a: 1}
|
||||
--- !u!1 &2423717193611656995
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -152,17 +150,17 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2423717193611656995}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7476718851314200889}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 110}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_AnchoredPosition: {x: 0, y: 80}
|
||||
m_SizeDelta: {x: 50, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6586906075369708484
|
||||
CanvasRenderer:
|
||||
@ -192,7 +190,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 1197703181795215433, guid: 8991ce55ada140746b953a82d2b1f196, type: 3}
|
||||
m_Sprite: {fileID: -765150924802650856, guid: d639caa9dc052b547b73dce9a856e78f, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@ -227,17 +225,17 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5016213976666468048}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7476718851314200889}
|
||||
m_Father: {fileID: 4479595212008154282}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 1}
|
||||
m_SizeDelta: {x: -10, y: -10}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3658248278055859851
|
||||
CanvasRenderer:
|
||||
@ -269,15 +267,15 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: "\u041D"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
m_sharedMaterial: {fileID: 2036267684637915601, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 7041394783e612f4eae9131c0a535951, type: 2}
|
||||
m_sharedMaterial: {fileID: 818154761001154010, guid: 7041394783e612f4eae9131c0a535951, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
rgba: 4288954963
|
||||
m_fontColor: {r: 0.3254902, g: 0.25882354, b: 0.6431373, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@ -294,7 +292,7 @@ MonoBehaviour:
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 125.8
|
||||
m_fontSize: 81.85
|
||||
m_fontSizeBase: 200
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
@ -364,17 +362,17 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6711382326363563761}
|
||||
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 1, w: 0}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7476718851314200889}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -110}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_AnchoredPosition: {x: 0, y: -80}
|
||||
m_SizeDelta: {x: 50, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4164371370080920532
|
||||
CanvasRenderer:
|
||||
@ -404,7 +402,83 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 1197703181795215433, guid: 8991ce55ada140746b953a82d2b1f196, type: 3}
|
||||
m_Sprite: {fileID: -765150924802650856, guid: d639caa9dc052b547b73dce9a856e78f, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &7156662078552624694
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4479595212008154282}
|
||||
- component: {fileID: 597311615700008910}
|
||||
- component: {fileID: 2774274496316656674}
|
||||
m_Layer: 5
|
||||
m_Name: Character
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4479595212008154282
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7156662078552624694}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8627206344477583323}
|
||||
m_Father: {fileID: 7476718851314200889}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &597311615700008910
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7156662078552624694}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2774274496316656674
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7156662078552624694}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@ -472,15 +546,15 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.20038268, g: 0.5322009, b: 0.745283, a: 0.62352943}
|
||||
m_Color: {r: 0.22352943, g: 0.9803922, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 4211293783942383924, guid: a64f98d7a00501442ae40845562f1c20, type: 3}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
|
||||
@ -264,8 +264,8 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -8111322212487550922, guid: 31b2877e77610584cac3a41c46e85320, type: 3}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 7270301237361871098, guid: fd871f1f44c3c1746a504f6dd121b6bb, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
|
||||
@ -67,8 +67,8 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -8111322212487550922, guid: 31b2877e77610584cac3a41c46e85320, type: 3}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 7270301237361871098, guid: fd871f1f44c3c1746a504f6dd121b6bb, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
|
||||
@ -100,9 +100,9 @@ MonoBehaviour:
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_HighlightedColor: {r: 0.80392164, g: 1, b: 0.10196079, a: 1}
|
||||
m_PressedColor: {r: 0.8039216, g: 1, b: 0.101960786, a: 1}
|
||||
m_SelectedColor: {r: 0.8039216, g: 1, b: 0.101960786, a: 1}
|
||||
m_DisabledColor: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
@ -198,7 +198,7 @@ MonoBehaviour:
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 10
|
||||
m_Spacing: 15
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 1
|
||||
|
||||
@ -12,8 +12,10 @@ GameObject:
|
||||
- component: {fileID: 6418208233271057322}
|
||||
- component: {fileID: 8603317830485265751}
|
||||
- component: {fileID: 3891422000916034842}
|
||||
- component: {fileID: -8171790121543617477}
|
||||
- component: {fileID: 1975627454378284422}
|
||||
m_Layer: 0
|
||||
m_Name: Button
|
||||
m_Name: PrizeStand_Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@ -32,6 +34,7 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7969020585539137307}
|
||||
- {fileID: 5325082536838323762}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
@ -67,8 +70,8 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -8111322212487550922, guid: 31b2877e77610584cac3a41c46e85320, type: 3}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 7270301237361871098, guid: fd871f1f44c3c1746a504f6dd121b6bb, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
@ -98,10 +101,10 @@ MonoBehaviour:
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1}
|
||||
m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_PressedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_SelectedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_PressedColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_SelectedColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_DisabledColor: {r: 0.63529414, g: 0.63529414, b: 0.63529414, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
@ -121,6 +124,36 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &-8171790121543617477
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1758083603916175787}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cbe98b3cb7252fb4d92f45e7034ff31b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.UI.PrizeStandButtonView
|
||||
boxNumberText: {fileID: 2985328858931436486}
|
||||
boxPriceText: {fileID: 706982066432075956}
|
||||
boxPriceFormat: '{0}'
|
||||
--- !u!114 &1975627454378284422
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1758083603916175787}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 056e6a675e11c3a438dfa0d692787ee1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.UI.ButtonTextFocusColor
|
||||
targetText: {fileID: 2985328858931436486}
|
||||
normalColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
focusedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
--- !u!1 &2307937535396352836
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -195,8 +228,8 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
rgba: 4281355008
|
||||
m_fontColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@ -258,3 +291,140 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &4345915058803125209
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5325082536838323762}
|
||||
- component: {fileID: 5564865279829283041}
|
||||
- component: {fileID: 706982066432075956}
|
||||
m_Layer: 0
|
||||
m_Name: ScoreText
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5325082536838323762
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4345915058803125209}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7082477975537308933}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -75}
|
||||
m_SizeDelta: {x: 0, y: -50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5564865279829283041
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4345915058803125209}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &706982066432075956
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4345915058803125209}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: 10000
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
m_sharedMaterial: {fileID: 2036267684637915601, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4281355008
|
||||
m_fontColor: {r: 0, g: 0.29411766, b: 0.1882353, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 30.3
|
||||
m_fontSizeBase: 48
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 12
|
||||
m_fontSizeMax: 48
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_characterHorizontalScale: 1
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
@ -164,8 +164,8 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
rgba: 4288954963
|
||||
m_fontColor: {r: 0.3254902, g: 0.25882354, b: 0.6431373, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
|
||||
@ -35,7 +35,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 10, y: 0}
|
||||
m_SizeDelta: {x: 10, y: -4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6471654452244886751
|
||||
CanvasRenderer:
|
||||
@ -74,7 +74,7 @@ MonoBehaviour:
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 10
|
||||
m_PixelsPerUnitMultiplier: 100
|
||||
--- !u!1 &860684354036165143
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -286,7 +286,7 @@ MonoBehaviour:
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 10
|
||||
m_PixelsPerUnitMultiplier: 100
|
||||
--- !u!1 &1708180760562552811
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -337,17 +337,17 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4636128204290495225}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5627896420819186933}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 100, y: 0}
|
||||
m_SizeDelta: {x: 50, y: 75}
|
||||
m_SizeDelta: {x: 35, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7372200330221479758
|
||||
CanvasRenderer:
|
||||
@ -377,7 +377,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 1197703181795215433, guid: 8991ce55ada140746b953a82d2b1f196, type: 3}
|
||||
m_Sprite: {fileID: -765150924802650856, guid: d639caa9dc052b547b73dce9a856e78f, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@ -537,17 +537,17 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6667746243977224163}
|
||||
m_LocalRotation: {x: -0, y: -0, z: 1, w: 0}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5627896420819186933}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -100, y: 0}
|
||||
m_SizeDelta: {x: 50, y: 75}
|
||||
m_SizeDelta: {x: 35, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6286042809169003938
|
||||
CanvasRenderer:
|
||||
@ -577,7 +577,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 1197703181795215433, guid: 8991ce55ada140746b953a82d2b1f196, type: 3}
|
||||
m_Sprite: {fileID: -765150924802650856, guid: d639caa9dc052b547b73dce9a856e78f, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
|
||||
BIN
Assets/Resources/Sprites/UI/Components/arrow.png
Normal file
BIN
Assets/Resources/Sprites/UI/Components/arrow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
169
Assets/Resources/Sprites/UI/Components/arrow.png.meta
Normal file
169
Assets/Resources/Sprites/UI/Components/arrow.png.meta
Normal file
@ -0,0 +1,169 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d639caa9dc052b547b73dce9a856e78f
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -765150924802650856
|
||||
second: arrow_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WindowsStoreApps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: arrow_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 23
|
||||
y: 81
|
||||
width: 210
|
||||
height: 117
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 81d839fa943a165f0800000000000000
|
||||
internalID: -765150924802650856
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
arrow_0: -765150924802650856
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Sprites/UI/Components/plashka_prize.png
Normal file
BIN
Assets/Resources/Sprites/UI/Components/plashka_prize.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
169
Assets/Resources/Sprites/UI/Components/plashka_prize.png.meta
Normal file
169
Assets/Resources/Sprites/UI/Components/plashka_prize.png.meta
Normal file
@ -0,0 +1,169 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd871f1f44c3c1746a504f6dd121b6bb
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 7270301237361871098
|
||||
second: plashka_prize_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WindowsStoreApps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: plashka_prize_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 54
|
||||
y: 57
|
||||
width: 148
|
||||
height: 142
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: af88907a47c45e460800000000000000
|
||||
internalID: 7270301237361871098
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
plashka_prize_0: 7270301237361871098
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
363
Assets/Scripts/Behaviour/EntitySpawner.cs
Normal file
363
Assets/Scripts/Behaviour/EntitySpawner.cs
Normal file
@ -0,0 +1,363 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RR.Game2D.Behaviour
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public sealed class EntitySpawner : MonoBehaviour
|
||||
{
|
||||
[Serializable]
|
||||
public struct SpawnPrefabEntry
|
||||
{
|
||||
public GameObject prefab;
|
||||
[Min(1)] public int weight;
|
||||
}
|
||||
|
||||
[Header("Prefabs")]
|
||||
[SerializeField] private SpawnPrefabEntry[] prefabs;
|
||||
|
||||
[Header("Spawn Timing")]
|
||||
[SerializeField] private bool spawnOnEnable = true;
|
||||
[SerializeField] private bool loop = true;
|
||||
[Min(0f)]
|
||||
[SerializeField] private float initialDelay;
|
||||
[Tooltip("Минимальный и максимальный интервал между спавнами.")]
|
||||
[SerializeField] private Vector2 spawnInterval = new(1f, 2f);
|
||||
|
||||
[Header("Spawn Limits")]
|
||||
[Tooltip("Максимум одновременно существующих объектов. 0 или меньше — без лимита.")]
|
||||
[SerializeField] private int maxAlive = 5;
|
||||
[Tooltip("Максимум объектов за всю сессию работы спавнера. 0 или меньше — без лимита.")]
|
||||
[SerializeField] private int maxTotalSpawned;
|
||||
|
||||
[Header("Spawn Points")]
|
||||
[Tooltip("Если массив пуст, используется позиция самого спавнера.")]
|
||||
[SerializeField] private Transform[] spawnPoints;
|
||||
[SerializeField] private bool randomizeSpawnPoint = true;
|
||||
|
||||
[Header("Transform")]
|
||||
[SerializeField] private Transform spawnedParent;
|
||||
[Tooltip("Случайный угол по оси Z для 2D-объектов.")]
|
||||
[SerializeField] private Vector2 randomZRotation;
|
||||
|
||||
private readonly List<GameObject> _spawnedObjects = new();
|
||||
private Coroutine _spawnCoroutine;
|
||||
private int _totalSpawned;
|
||||
|
||||
public int AliveCount
|
||||
{
|
||||
get
|
||||
{
|
||||
CleanupSpawnedObjects();
|
||||
return _spawnedObjects.Count;
|
||||
}
|
||||
}
|
||||
|
||||
public int TotalSpawned => _totalSpawned;
|
||||
public int MaxAliveLimit => maxAlive;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (spawnOnEnable)
|
||||
StartSpawning();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
StopSpawning();
|
||||
}
|
||||
|
||||
public void StartSpawning()
|
||||
{
|
||||
if (!isActiveAndEnabled)
|
||||
return;
|
||||
|
||||
if (_spawnCoroutine != null)
|
||||
StopCoroutine(_spawnCoroutine);
|
||||
|
||||
_spawnCoroutine = StartCoroutine(SpawnRoutine());
|
||||
}
|
||||
|
||||
public void StopSpawning()
|
||||
{
|
||||
if (_spawnCoroutine == null)
|
||||
return;
|
||||
|
||||
StopCoroutine(_spawnCoroutine);
|
||||
_spawnCoroutine = null;
|
||||
}
|
||||
|
||||
public GameObject SpawnNow()
|
||||
{
|
||||
return SpawnNowInternal(null);
|
||||
}
|
||||
|
||||
public void SpawnCount(int count)
|
||||
{
|
||||
if (count <= 0)
|
||||
return;
|
||||
|
||||
HashSet<int> usedSpawnPointIndices = new();
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
if (SpawnNowInternal(usedSpawnPointIndices) == null)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public int SpawnToAliveCount(int targetAliveCount)
|
||||
{
|
||||
CleanupSpawnedObjects();
|
||||
|
||||
int target = Mathf.Max(0, targetAliveCount);
|
||||
int currentAlive = _spawnedObjects.Count;
|
||||
int toSpawn = target - currentAlive;
|
||||
int spawnedCount = 0;
|
||||
HashSet<int> usedSpawnPointIndices = new();
|
||||
|
||||
if (toSpawn <= 0)
|
||||
return 0;
|
||||
|
||||
for (int i = 0; i < toSpawn; i++)
|
||||
{
|
||||
if (SpawnNowInternal(usedSpawnPointIndices) == null)
|
||||
break;
|
||||
|
||||
spawnedCount++;
|
||||
}
|
||||
|
||||
return spawnedCount;
|
||||
}
|
||||
|
||||
public int SpawnPercent(float percent)
|
||||
{
|
||||
if (maxAlive <= 0)
|
||||
{
|
||||
Debug.LogWarning(
|
||||
$"[{nameof(EntitySpawner)}] Cannot spawn by percent on '{name}' because Max Alive is not configured.",
|
||||
this);
|
||||
return 0;
|
||||
}
|
||||
|
||||
float normalizedPercent = NormalizePercent(percent);
|
||||
int targetAliveCount = Mathf.CeilToInt(maxAlive * normalizedPercent);
|
||||
return SpawnToAliveCount(targetAliveCount);
|
||||
}
|
||||
|
||||
public void ClearSpawned()
|
||||
{
|
||||
StopSpawning();
|
||||
|
||||
for (int i = 0; i < _spawnedObjects.Count; i++)
|
||||
{
|
||||
GameObject spawnedObject = _spawnedObjects[i];
|
||||
if (spawnedObject != null)
|
||||
Destroy(spawnedObject);
|
||||
}
|
||||
|
||||
_spawnedObjects.Clear();
|
||||
}
|
||||
|
||||
public void ResetSpawner()
|
||||
{
|
||||
_totalSpawned = 0;
|
||||
CleanupSpawnedObjects();
|
||||
}
|
||||
|
||||
private IEnumerator SpawnRoutine()
|
||||
{
|
||||
if (initialDelay > 0f)
|
||||
yield return new WaitForSeconds(initialDelay);
|
||||
|
||||
do
|
||||
{
|
||||
SpawnNow();
|
||||
|
||||
if (!loop)
|
||||
break;
|
||||
|
||||
float delay = UnityEngine.Random.Range(
|
||||
Mathf.Min(spawnInterval.x, spawnInterval.y),
|
||||
Mathf.Max(spawnInterval.x, spawnInterval.y));
|
||||
|
||||
if (delay > 0f)
|
||||
yield return new WaitForSeconds(delay);
|
||||
else
|
||||
yield return null;
|
||||
}
|
||||
while (enabled && gameObject.activeInHierarchy);
|
||||
|
||||
_spawnCoroutine = null;
|
||||
}
|
||||
|
||||
private GameObject SpawnNowInternal(HashSet<int> usedSpawnPointIndices)
|
||||
{
|
||||
CleanupSpawnedObjects();
|
||||
|
||||
if (!CanSpawn())
|
||||
return null;
|
||||
|
||||
GameObject prefab = PickPrefab();
|
||||
if (prefab == null)
|
||||
return null;
|
||||
|
||||
if (!TryPickSpawnPoint(usedSpawnPointIndices, out Transform spawnPoint))
|
||||
return null;
|
||||
|
||||
Vector3 spawnPosition = spawnPoint != null ? spawnPoint.position : transform.position;
|
||||
Quaternion spawnRotation = spawnPoint != null ? spawnPoint.rotation : transform.rotation;
|
||||
|
||||
float zAngle = UnityEngine.Random.Range(randomZRotation.x, randomZRotation.y);
|
||||
spawnRotation *= Quaternion.Euler(0f, 0f, zAngle);
|
||||
|
||||
GameObject instance = Instantiate(prefab, spawnPosition, spawnRotation, spawnedParent);
|
||||
_spawnedObjects.Add(instance);
|
||||
_totalSpawned++;
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
private bool CanSpawn()
|
||||
{
|
||||
if (prefabs == null || prefabs.Length == 0)
|
||||
return false;
|
||||
|
||||
if (maxAlive > 0 && _spawnedObjects.Count >= maxAlive)
|
||||
return false;
|
||||
|
||||
if (maxTotalSpawned > 0 && _totalSpawned >= maxTotalSpawned)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private GameObject PickPrefab()
|
||||
{
|
||||
int totalWeight = 0;
|
||||
|
||||
for (int i = 0; i < prefabs.Length; i++)
|
||||
{
|
||||
if (prefabs[i].prefab == null)
|
||||
continue;
|
||||
|
||||
totalWeight += Mathf.Max(1, prefabs[i].weight);
|
||||
}
|
||||
|
||||
if (totalWeight <= 0)
|
||||
return null;
|
||||
|
||||
int randomValue = UnityEngine.Random.Range(0, totalWeight);
|
||||
int currentWeight = 0;
|
||||
|
||||
for (int i = 0; i < prefabs.Length; i++)
|
||||
{
|
||||
if (prefabs[i].prefab == null)
|
||||
continue;
|
||||
|
||||
currentWeight += Mathf.Max(1, prefabs[i].weight);
|
||||
if (randomValue < currentWeight)
|
||||
return prefabs[i].prefab;
|
||||
}
|
||||
|
||||
return prefabs[prefabs.Length - 1].prefab;
|
||||
}
|
||||
|
||||
private bool TryPickSpawnPoint(HashSet<int> usedSpawnPointIndices, out Transform spawnPoint)
|
||||
{
|
||||
if (spawnPoints == null || spawnPoints.Length == 0)
|
||||
{
|
||||
if (usedSpawnPointIndices != null && !usedSpawnPointIndices.Add(-1))
|
||||
{
|
||||
spawnPoint = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
spawnPoint = transform;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (randomizeSpawnPoint)
|
||||
{
|
||||
List<int> availableIndices = new();
|
||||
for (int i = 0; i < spawnPoints.Length; i++)
|
||||
{
|
||||
if (spawnPoints[i] == null)
|
||||
continue;
|
||||
|
||||
if (usedSpawnPointIndices != null && usedSpawnPointIndices.Contains(i))
|
||||
continue;
|
||||
|
||||
availableIndices.Add(i);
|
||||
}
|
||||
|
||||
if (availableIndices.Count == 0)
|
||||
{
|
||||
spawnPoint = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
int randomListIndex = UnityEngine.Random.Range(0, availableIndices.Count);
|
||||
int chosenIndex = availableIndices[randomListIndex];
|
||||
usedSpawnPointIndices?.Add(chosenIndex);
|
||||
spawnPoint = spawnPoints[chosenIndex];
|
||||
return true;
|
||||
}
|
||||
|
||||
for (int i = 0; i < spawnPoints.Length; i++)
|
||||
{
|
||||
if (spawnPoints[i] == null)
|
||||
continue;
|
||||
|
||||
if (usedSpawnPointIndices != null && usedSpawnPointIndices.Contains(i))
|
||||
continue;
|
||||
|
||||
usedSpawnPointIndices?.Add(i);
|
||||
spawnPoint = spawnPoints[i];
|
||||
return true;
|
||||
}
|
||||
|
||||
spawnPoint = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
private void CleanupSpawnedObjects()
|
||||
{
|
||||
for (int i = _spawnedObjects.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (_spawnedObjects[i] == null)
|
||||
_spawnedObjects.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
private static float NormalizePercent(float percent)
|
||||
{
|
||||
if (percent > 1f)
|
||||
percent *= 0.01f;
|
||||
|
||||
return Mathf.Clamp01(percent);
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = new Color(0.25f, 0.9f, 0.4f, 0.9f);
|
||||
|
||||
if (spawnPoints == null || spawnPoints.Length == 0)
|
||||
{
|
||||
Gizmos.DrawWireSphere(transform.position, 0.2f);
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < spawnPoints.Length; i++)
|
||||
{
|
||||
Transform spawnPoint = spawnPoints[i];
|
||||
if (spawnPoint == null)
|
||||
continue;
|
||||
|
||||
Gizmos.DrawWireSphere(spawnPoint.position, 0.2f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Behaviour/EntitySpawner.cs.meta
Normal file
11
Assets/Scripts/Behaviour/EntitySpawner.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3a8ac495d7c4d25bd9fca73a7d2d3a1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
178
Assets/Scripts/Behaviour/EntitySpawnerManager.cs
Normal file
178
Assets/Scripts/Behaviour/EntitySpawnerManager.cs
Normal file
@ -0,0 +1,178 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using RR.Common.Settings;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RR.Game2D.Behaviour
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public sealed class EntitySpawnerManager : MonoBehaviour
|
||||
{
|
||||
[Header("Spawners")]
|
||||
[SerializeField] private EntitySpawner[] spawners;
|
||||
[SerializeField] private bool includeChildren = true;
|
||||
[SerializeField] private bool includeInactiveChildren = true;
|
||||
|
||||
[Header("Initialize Spawn")]
|
||||
[SerializeField] private bool spawnOnInitialize;
|
||||
[Tooltip("Если включено, процент спавна берётся из настройки gameplay.gameDifficulty.")]
|
||||
[SerializeField] private bool useSettings = true;
|
||||
[Range(0f, 100f)]
|
||||
[SerializeField] private float initializeSpawnPercent = 100f;
|
||||
|
||||
private readonly List<EntitySpawner> _resolvedSpawners = new();
|
||||
private readonly HashSet<EntitySpawner> _deduplicationSet = new();
|
||||
private const string GameDifficultyKey = "gameplay.gameDifficulty";
|
||||
private const float SettingsWaitTimeout = 2f;
|
||||
|
||||
public int LastSpawnedCount { get; private set; }
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (!spawnOnInitialize)
|
||||
return;
|
||||
|
||||
StartCoroutine(InitializeSpawnRoutine());
|
||||
}
|
||||
|
||||
public void SpawnConfiguredPercent()
|
||||
{
|
||||
SpawnPercent(GetConfiguredSpawnPercent());
|
||||
}
|
||||
|
||||
public void SpawnPercent(int percent)
|
||||
{
|
||||
SpawnPercent((float)percent);
|
||||
}
|
||||
|
||||
public void SpawnPercent(float percent)
|
||||
{
|
||||
LastSpawnedCount = SpawnInternal(percent);
|
||||
}
|
||||
|
||||
public void StartAllSpawners()
|
||||
{
|
||||
ResolveSpawners();
|
||||
|
||||
for (int i = 0; i < _resolvedSpawners.Count; i++)
|
||||
{
|
||||
if (_resolvedSpawners[i] != null)
|
||||
_resolvedSpawners[i].StartSpawning();
|
||||
}
|
||||
}
|
||||
|
||||
public void StopAllSpawners()
|
||||
{
|
||||
ResolveSpawners();
|
||||
|
||||
for (int i = 0; i < _resolvedSpawners.Count; i++)
|
||||
{
|
||||
if (_resolvedSpawners[i] != null)
|
||||
_resolvedSpawners[i].StopSpawning();
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearAllSpawned()
|
||||
{
|
||||
ResolveSpawners();
|
||||
|
||||
for (int i = 0; i < _resolvedSpawners.Count; i++)
|
||||
{
|
||||
if (_resolvedSpawners[i] != null)
|
||||
_resolvedSpawners[i].ClearSpawned();
|
||||
}
|
||||
}
|
||||
|
||||
private int SpawnInternal(float percent)
|
||||
{
|
||||
ResolveSpawners();
|
||||
|
||||
int totalSpawned = 0;
|
||||
for (int i = 0; i < _resolvedSpawners.Count; i++)
|
||||
{
|
||||
EntitySpawner spawner = _resolvedSpawners[i];
|
||||
if (spawner == null)
|
||||
continue;
|
||||
|
||||
totalSpawned += spawner.SpawnPercent(percent);
|
||||
}
|
||||
|
||||
return totalSpawned;
|
||||
}
|
||||
|
||||
private void ResolveSpawners()
|
||||
{
|
||||
_resolvedSpawners.Clear();
|
||||
_deduplicationSet.Clear();
|
||||
|
||||
if (spawners != null)
|
||||
{
|
||||
for (int i = 0; i < spawners.Length; i++)
|
||||
TryAddSpawner(spawners[i]);
|
||||
}
|
||||
|
||||
if (!includeChildren)
|
||||
return;
|
||||
|
||||
EntitySpawner[] childSpawners = GetComponentsInChildren<EntitySpawner>(includeInactiveChildren);
|
||||
for (int i = 0; i < childSpawners.Length; i++)
|
||||
TryAddSpawner(childSpawners[i]);
|
||||
}
|
||||
|
||||
private void TryAddSpawner(EntitySpawner spawner)
|
||||
{
|
||||
if (spawner == null || !_deduplicationSet.Add(spawner))
|
||||
return;
|
||||
|
||||
_resolvedSpawners.Add(spawner);
|
||||
}
|
||||
|
||||
private IEnumerator InitializeSpawnRoutine()
|
||||
{
|
||||
if (useSettings)
|
||||
{
|
||||
float elapsed = 0f;
|
||||
while (SettingsManager.Instance == null && elapsed < SettingsWaitTimeout)
|
||||
{
|
||||
elapsed += Time.unscaledDeltaTime;
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
float percent = GetConfiguredSpawnPercent();
|
||||
Debug.Log($"[{nameof(EntitySpawnerManager)}] Initialize spawn percent = {percent}", this);
|
||||
SpawnPercent(percent);
|
||||
}
|
||||
|
||||
private float GetConfiguredSpawnPercent()
|
||||
{
|
||||
if (!useSettings)
|
||||
return initializeSpawnPercent;
|
||||
|
||||
SettingsManager settingsManager = SettingsManager.Instance;
|
||||
if (settingsManager == null)
|
||||
{
|
||||
Debug.LogWarning(
|
||||
$"[{nameof(EntitySpawnerManager)}] SettingsManager.Instance not found. Using max difficulty spawn percent.",
|
||||
this);
|
||||
return 100f;
|
||||
}
|
||||
|
||||
int difficultyIndex = settingsManager.GetInt(GameDifficultyKey);
|
||||
float percent = difficultyIndex switch
|
||||
{
|
||||
0 => 25f,
|
||||
1 => 50f,
|
||||
2 => 75f,
|
||||
3 => 100f,
|
||||
_ => 100f
|
||||
};
|
||||
|
||||
Debug.Log(
|
||||
$"[{nameof(EntitySpawnerManager)}] Difficulty index '{difficultyIndex}' from '{GameDifficultyKey}' resolved to {percent}%.",
|
||||
this);
|
||||
|
||||
return percent;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Behaviour/EntitySpawnerManager.cs.meta
Normal file
11
Assets/Scripts/Behaviour/EntitySpawnerManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91386b6100ed46efaad4af26ce6134f9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -78,9 +78,15 @@ namespace RR.Game2D.Behaviour
|
||||
ResolvePlayer();
|
||||
if (GameManager.Instance != null)
|
||||
GameManager.Instance.PlayerSpawned += OnPlayerSpawned;
|
||||
SubscribeToScoreSystem();
|
||||
MaintainFixedCount();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
SubscribeToScoreSystem();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
foreach (EnvironmentalCollectibleBase collectible in _activeCollectibles)
|
||||
@ -91,6 +97,8 @@ namespace RR.Game2D.Behaviour
|
||||
|
||||
if (GameManager.Instance != null)
|
||||
GameManager.Instance.PlayerSpawned -= OnPlayerSpawned;
|
||||
|
||||
UnsubscribeFromScoreSystem();
|
||||
}
|
||||
|
||||
#region Public API — смена типа спауна
|
||||
@ -386,6 +394,13 @@ namespace RR.Game2D.Behaviour
|
||||
_activeCollectibles.Remove(collectible);
|
||||
_prefabByCollectible.Remove(collectible);
|
||||
|
||||
if (HasReachedSharedCollectibleLimit())
|
||||
{
|
||||
DespawnCollectiblesBlockedBySharedLimit();
|
||||
MaintainFixedCount();
|
||||
return;
|
||||
}
|
||||
|
||||
MaintainFixedCount();
|
||||
}
|
||||
|
||||
@ -401,6 +416,12 @@ namespace RR.Game2D.Behaviour
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IsBlockedBySharedCollectibleLimit(forced.prefab))
|
||||
{
|
||||
entry = default;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Проверяем лимит
|
||||
if (forced.limit > 0 &&
|
||||
_activeCountByPrefab.TryGetValue(forced.prefab.gameObject, out int fc) &&
|
||||
@ -428,6 +449,7 @@ namespace RR.Game2D.Behaviour
|
||||
|
||||
GameObject prefab = current.prefab.gameObject;
|
||||
if (forcedName != null && prefab.name != forcedName) continue;
|
||||
if (IsBlockedBySharedCollectibleLimit(current.prefab)) continue;
|
||||
|
||||
if (current.limit > 0 &&
|
||||
_activeCountByPrefab.TryGetValue(prefab, out int activeCount) &&
|
||||
@ -443,7 +465,7 @@ namespace RR.Game2D.Behaviour
|
||||
if (totalWeight <= 0 && _forcedPrefab != null)
|
||||
{
|
||||
EnvironmentalCollectibleBase comp = _forcedPrefab.GetComponent<EnvironmentalCollectibleBase>();
|
||||
if (comp != null)
|
||||
if (comp != null && !IsBlockedBySharedCollectibleLimit(comp))
|
||||
{
|
||||
entry = new SpawnEntry { prefab = comp, weight = 1 };
|
||||
return true;
|
||||
@ -461,6 +483,7 @@ namespace RR.Game2D.Behaviour
|
||||
|
||||
GameObject prefab = current.prefab.gameObject;
|
||||
if (forcedName != null && prefab.name != forcedName) continue;
|
||||
if (IsBlockedBySharedCollectibleLimit(current.prefab)) continue;
|
||||
|
||||
if (current.limit > 0 &&
|
||||
_activeCountByPrefab.TryGetValue(prefab, out int activeCount) &&
|
||||
@ -579,6 +602,62 @@ namespace RR.Game2D.Behaviour
|
||||
Destroy(collectible.gameObject);
|
||||
}
|
||||
|
||||
private void SubscribeToScoreSystem()
|
||||
{
|
||||
if (ScoreSystem.Instance != null)
|
||||
{
|
||||
ScoreSystem.Instance.SharedEnvironmentalCollectiblesChanged -= OnSharedEnvironmentalCollectiblesChanged;
|
||||
ScoreSystem.Instance.SharedEnvironmentalCollectiblesChanged += OnSharedEnvironmentalCollectiblesChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private void UnsubscribeFromScoreSystem()
|
||||
{
|
||||
if (ScoreSystem.Instance != null)
|
||||
{
|
||||
ScoreSystem.Instance.SharedEnvironmentalCollectiblesChanged -= OnSharedEnvironmentalCollectiblesChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSharedEnvironmentalCollectiblesChanged(int collected, int maxCount)
|
||||
{
|
||||
if (maxCount > 0 && collected >= maxCount)
|
||||
{
|
||||
DespawnCollectiblesBlockedBySharedLimit();
|
||||
}
|
||||
|
||||
MaintainFixedCount();
|
||||
}
|
||||
|
||||
private void DespawnCollectiblesBlockedBySharedLimit()
|
||||
{
|
||||
_refreshBuffer.Clear();
|
||||
foreach (EnvironmentalCollectibleBase collectible in _activeCollectibles)
|
||||
{
|
||||
if (collectible != null && IsBlockedBySharedCollectibleLimit(collectible))
|
||||
{
|
||||
_refreshBuffer.Add(collectible);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < _refreshBuffer.Count; i++)
|
||||
{
|
||||
DespawnCollectible(_refreshBuffer[i]);
|
||||
}
|
||||
|
||||
_refreshBuffer.Clear();
|
||||
}
|
||||
|
||||
private static bool HasReachedSharedCollectibleLimit()
|
||||
{
|
||||
return ScoreSystem.Instance != null && ScoreSystem.Instance.HasReachedSharedEnvironmentalCollectibleLimit;
|
||||
}
|
||||
|
||||
private static bool IsBlockedBySharedCollectibleLimit(EnvironmentalCollectibleBase collectible)
|
||||
{
|
||||
return collectible != null && collectible.CountsTowardsSharedCollectionLimit && HasReachedSharedCollectibleLimit();
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Bounds bounds = GetSpawnBounds();
|
||||
|
||||
@ -19,16 +19,23 @@ namespace RR.Game2D.Behaviour
|
||||
[SerializeField] private float winMultiplier = 1f;
|
||||
[SerializeField] private float loseMultiplier = 0.6f;
|
||||
|
||||
[Header("Environmental Collectibles")]
|
||||
[SerializeField] private int maxSharedEnvironmentalCollectibles = 50;
|
||||
|
||||
public int CollectedCoins { get; private set; }
|
||||
public int TotalCollectedCoins => CollectedCoins;
|
||||
public int KilledEnemies { get; private set; }
|
||||
public int EnvironmentalPoints { get; private set; }
|
||||
public int SharedEnvironmentalCollectiblesCollected { get; private set; }
|
||||
public int CurrentScore { get; private set; }
|
||||
public int FinalScore { get; private set; }
|
||||
public bool IsFinalized { get; private set; }
|
||||
public bool HasReachedSharedEnvironmentalCollectibleLimit =>
|
||||
maxSharedEnvironmentalCollectibles > 0 && SharedEnvironmentalCollectiblesCollected >= maxSharedEnvironmentalCollectibles;
|
||||
|
||||
public event Action<int, int> StatsChanged;
|
||||
public event Action<int> EnvironmentalPointsChanged;
|
||||
public event Action<int, int> SharedEnvironmentalCollectiblesChanged;
|
||||
public event Action<int> CurrentScoreChanged;
|
||||
public event Action<int, float, bool> ScoreCalculated;
|
||||
|
||||
@ -100,6 +107,22 @@ namespace RR.Game2D.Behaviour
|
||||
RefreshCurrentScore();
|
||||
}
|
||||
|
||||
public void RegisterSharedEnvironmentalCollectibleCollected(int points = 1)
|
||||
{
|
||||
if (IsFinalized || HasReachedSharedEnvironmentalCollectibleLimit) return;
|
||||
|
||||
SharedEnvironmentalCollectiblesCollected++;
|
||||
SharedEnvironmentalCollectiblesChanged?.Invoke(SharedEnvironmentalCollectiblesCollected, maxSharedEnvironmentalCollectibles);
|
||||
|
||||
if (points > 0)
|
||||
{
|
||||
EnvironmentalPoints += points;
|
||||
EnvironmentalPointsChanged?.Invoke(EnvironmentalPoints);
|
||||
}
|
||||
|
||||
RefreshCurrentScore();
|
||||
}
|
||||
|
||||
public int CalculatePreviewScore(float gameTime, bool isWin)
|
||||
{
|
||||
float e = isWin ? winMultiplier : loseMultiplier;
|
||||
@ -124,11 +147,13 @@ namespace RR.Game2D.Behaviour
|
||||
CollectedCoins = 0;
|
||||
KilledEnemies = 0;
|
||||
EnvironmentalPoints = 0;
|
||||
SharedEnvironmentalCollectiblesCollected = 0;
|
||||
CurrentScore = 0;
|
||||
FinalScore = 0;
|
||||
IsFinalized = false;
|
||||
StatsChanged?.Invoke(CollectedCoins, KilledEnemies);
|
||||
EnvironmentalPointsChanged?.Invoke(EnvironmentalPoints);
|
||||
SharedEnvironmentalCollectiblesChanged?.Invoke(SharedEnvironmentalCollectiblesCollected, maxSharedEnvironmentalCollectibles);
|
||||
CurrentScoreChanged?.Invoke(CurrentScore);
|
||||
}
|
||||
|
||||
|
||||
@ -23,6 +23,9 @@ namespace RR.Common.Controls
|
||||
|
||||
private const string RequestStandStatus = "25";
|
||||
private const string OpenBoxPrefix = "2501";
|
||||
private const string ForceOpenBoxPrefix = "2511";
|
||||
private const string IdleLightingCommand = "8020";
|
||||
private const string HighlightBoxLightingPrefix = "8021";
|
||||
private const float StatusRequestTimeout = 3f;
|
||||
private const float WaitOpenStatusTimeout = 5f;
|
||||
|
||||
@ -59,6 +62,11 @@ namespace RR.Common.Controls
|
||||
return _boxesCount;
|
||||
}
|
||||
|
||||
public static bool IsReadyToOpenStatus(BoxStatus status)
|
||||
{
|
||||
return ReadyToOpenStatuses.Contains(status);
|
||||
}
|
||||
|
||||
public async Task<Dictionary<int, BoxStatus>> GetStatusesAsync(float timeoutSeconds = StatusRequestTimeout)
|
||||
{
|
||||
if (_boxesCount <= 0)
|
||||
@ -106,7 +114,7 @@ namespace RR.Common.Controls
|
||||
Dictionary<int, BoxStatus> allStatuses = await GetStatusesAsync(timeoutSeconds);
|
||||
|
||||
return allStatuses
|
||||
.Where(kvp => ReadyToOpenStatuses.Contains(kvp.Value))
|
||||
.Where(kvp => IsReadyToOpenStatus(kvp.Value))
|
||||
.Select(kvp => kvp.Key)
|
||||
.OrderBy(boxNumber => boxNumber)
|
||||
.ToArray();
|
||||
@ -168,6 +176,68 @@ namespace RR.Common.Controls
|
||||
}
|
||||
}
|
||||
|
||||
public async Task OpenBoxForcedAsync(int boxNumber)
|
||||
{
|
||||
if (!await _lock.WaitAsync(0))
|
||||
{
|
||||
OpeningFinished?.Invoke(false, "Выдача уже в процессе");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (boxNumber <= 0)
|
||||
{
|
||||
OpeningFinished?.Invoke(false, "Номер коробки должен быть больше 0");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_boxesCount > 0 && boxNumber > _boxesCount)
|
||||
{
|
||||
OpeningFinished?.Invoke(false, $"Номер коробки={boxNumber} невалидный. Требуется от 1 до {_boxesCount}.");
|
||||
return;
|
||||
}
|
||||
|
||||
ClearStatusQueue();
|
||||
SendCommand($"{ForceOpenBoxPrefix}{boxNumber:D2}");
|
||||
|
||||
BoxStatus openStatus = await ReadBoxStatusAsync(boxNumber, 1, WaitOpenStatusTimeout);
|
||||
if (openStatus == BoxStatus.OPENED)
|
||||
{
|
||||
OpeningFinished?.Invoke(true, $"Ячейка {boxNumber} успешно открыта");
|
||||
}
|
||||
else
|
||||
{
|
||||
_log?.Invoke($"[Модуль витрины] Ошибка при принудительном открытии ячейки {boxNumber}. Статус: {openStatus}");
|
||||
OpeningFinished?.Invoke(false, $"Ошибка при принудительном открытии ячейки номер {boxNumber}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Invoke($"[Модуль витрины] Ошибка при принудительном открытии ячейки {boxNumber}: {ex.Message}");
|
||||
OpeningFinished?.Invoke(false, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_lock.Release();
|
||||
}
|
||||
}
|
||||
|
||||
public bool SetIdleLighting()
|
||||
{
|
||||
return TrySendCommand(IdleLightingCommand);
|
||||
}
|
||||
|
||||
public bool HighlightBoxLighting(int boxNumber)
|
||||
{
|
||||
if (boxNumber <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return TrySendCommand($"{HighlightBoxLightingPrefix}{boxNumber:D2}");
|
||||
}
|
||||
|
||||
public void HandleCoinAccepted()
|
||||
{
|
||||
// Для витрины монеты не обрабатываются.
|
||||
@ -231,7 +301,7 @@ namespace RR.Common.Controls
|
||||
int expectedEntriesCount = _boxesCount > 0 ? _boxesCount : 1;
|
||||
BoxStatus boxStatus = await ReadBoxStatusAsync(boxNumber, expectedEntriesCount, StatusRequestTimeout);
|
||||
|
||||
if (!ReadyToOpenStatuses.Contains(boxStatus))
|
||||
if (!IsReadyToOpenStatus(boxStatus))
|
||||
{
|
||||
isOk = false;
|
||||
sb.AppendLine($"- Статус коробки {boxNumber}: {boxStatus} не позволяет провести открытие.");
|
||||
@ -293,6 +363,20 @@ namespace RR.Common.Controls
|
||||
}
|
||||
}
|
||||
|
||||
private bool TrySendCommand(string command)
|
||||
{
|
||||
try
|
||||
{
|
||||
SendCommand(command);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Invoke($"[Модуль витрины] Ошибка при отправке команды '{command}': {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearStatusQueue()
|
||||
{
|
||||
while (_statusQueue.TryDequeue(out _))
|
||||
|
||||
250
Assets/Scripts/Editor/HierarchyBulkRenamerWindow.cs
Normal file
250
Assets/Scripts/Editor/HierarchyBulkRenamerWindow.cs
Normal file
@ -0,0 +1,250 @@
|
||||
#if UNITY_EDITOR
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RR.Common.InspectorOverrides
|
||||
{
|
||||
public sealed class HierarchyBulkRenamerWindow : EditorWindow
|
||||
{
|
||||
private enum NamingScheme
|
||||
{
|
||||
SpaceParenthesis,
|
||||
Dot,
|
||||
Underscore
|
||||
}
|
||||
|
||||
private struct NamingSettings
|
||||
{
|
||||
public NamingScheme Scheme;
|
||||
public int Digits;
|
||||
public bool StartsAtZero;
|
||||
}
|
||||
|
||||
private string _baseName = "GameObject";
|
||||
private Vector2 _scrollPosition;
|
||||
|
||||
[MenuItem("Tools/Hierarchy/Bulk Rename Selected")]
|
||||
private static void OpenWindow()
|
||||
{
|
||||
HierarchyBulkRenamerWindow window = GetWindow<HierarchyBulkRenamerWindow>();
|
||||
window.titleContent = new GUIContent("Bulk Rename");
|
||||
window.minSize = new Vector2(360f, 260f);
|
||||
window.Show();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
Selection.selectionChanged += Repaint;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
Selection.selectionChanged -= Repaint;
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
List<GameObject> selectedObjects = GetSelectedHierarchyObjects();
|
||||
NamingSettings namingSettings = ReadProjectNamingSettings();
|
||||
|
||||
EditorGUILayout.LabelField("Mass Rename Hierarchy Objects", EditorStyles.boldLabel);
|
||||
EditorGUILayout.Space(4f);
|
||||
|
||||
using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox))
|
||||
{
|
||||
EditorGUILayout.LabelField("Base Name", EditorStyles.miniBoldLabel);
|
||||
_baseName = EditorGUILayout.TextField(_baseName);
|
||||
}
|
||||
|
||||
using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox))
|
||||
{
|
||||
EditorGUILayout.LabelField("Project Numbering Settings", EditorStyles.miniBoldLabel);
|
||||
EditorGUILayout.LabelField("Scheme", NamingSchemeToText(namingSettings.Scheme));
|
||||
EditorGUILayout.LabelField("Digits", namingSettings.Digits.ToString());
|
||||
EditorGUILayout.LabelField("Starts At", namingSettings.StartsAtZero ? "0" : "1");
|
||||
}
|
||||
|
||||
using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox))
|
||||
{
|
||||
EditorGUILayout.LabelField("Selection", EditorStyles.miniBoldLabel);
|
||||
EditorGUILayout.LabelField($"Selected objects: {selectedObjects.Count}");
|
||||
|
||||
string previewBaseName = string.IsNullOrWhiteSpace(_baseName) ? "GameObject" : _baseName.Trim();
|
||||
string previewName = BuildName(previewBaseName, namingSettings, 0);
|
||||
EditorGUILayout.LabelField("First preview", previewName);
|
||||
}
|
||||
|
||||
EditorGUILayout.Space(4f);
|
||||
DrawSelectionPreview(selectedObjects, namingSettings);
|
||||
|
||||
using (new EditorGUI.DisabledScope(selectedObjects.Count == 0))
|
||||
{
|
||||
if (GUILayout.Button("Rename Selected"))
|
||||
RenameSelected(selectedObjects, namingSettings);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawSelectionPreview(List<GameObject> selectedObjects, NamingSettings namingSettings)
|
||||
{
|
||||
EditorGUILayout.LabelField("Preview", EditorStyles.boldLabel);
|
||||
|
||||
using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox))
|
||||
{
|
||||
_scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition, GUILayout.MinHeight(120f));
|
||||
|
||||
if (selectedObjects.Count == 0)
|
||||
{
|
||||
EditorGUILayout.LabelField("No hierarchy objects selected.");
|
||||
}
|
||||
else
|
||||
{
|
||||
string normalizedBaseName = string.IsNullOrWhiteSpace(_baseName) ? "GameObject" : _baseName.Trim();
|
||||
for (int i = 0; i < selectedObjects.Count; i++)
|
||||
{
|
||||
string renamed = BuildName(normalizedBaseName, namingSettings, i);
|
||||
EditorGUILayout.LabelField($"{selectedObjects[i].name} -> {renamed}");
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
}
|
||||
|
||||
private void RenameSelected(List<GameObject> selectedObjects, NamingSettings namingSettings)
|
||||
{
|
||||
if (selectedObjects.Count == 0)
|
||||
return;
|
||||
|
||||
string normalizedBaseName = string.IsNullOrWhiteSpace(_baseName) ? "GameObject" : _baseName.Trim();
|
||||
|
||||
Undo.RecordObjects(selectedObjects.ToArray(), "Bulk Rename Hierarchy Objects");
|
||||
|
||||
for (int i = 0; i < selectedObjects.Count; i++)
|
||||
{
|
||||
GameObject gameObject = selectedObjects[i];
|
||||
if (gameObject == null)
|
||||
continue;
|
||||
|
||||
gameObject.name = BuildName(normalizedBaseName, namingSettings, i);
|
||||
|
||||
if (gameObject.scene.IsValid())
|
||||
EditorSceneManager.MarkSceneDirty(gameObject.scene);
|
||||
}
|
||||
|
||||
EditorUtility.DisplayDialog(
|
||||
"Bulk Rename",
|
||||
$"Переименовано объектов: {selectedObjects.Count}",
|
||||
"OK");
|
||||
}
|
||||
|
||||
private static List<GameObject> GetSelectedHierarchyObjects()
|
||||
{
|
||||
return Selection.gameObjects
|
||||
.Where(gameObject => gameObject != null && gameObject.scene.IsValid())
|
||||
.OrderBy(gameObject => GetHierarchySortKey(gameObject.transform))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
private static string GetHierarchySortKey(Transform target)
|
||||
{
|
||||
List<int> indices = new();
|
||||
Transform current = target;
|
||||
|
||||
while (current != null)
|
||||
{
|
||||
indices.Add(current.GetSiblingIndex());
|
||||
current = current.parent;
|
||||
}
|
||||
|
||||
indices.Reverse();
|
||||
return string.Join("/", indices.Select(index => index.ToString("D6")));
|
||||
}
|
||||
|
||||
private static NamingSettings ReadProjectNamingSettings()
|
||||
{
|
||||
NamingSettings settings = new NamingSettings
|
||||
{
|
||||
Scheme = NamingScheme.SpaceParenthesis,
|
||||
Digits = 1,
|
||||
StartsAtZero = false
|
||||
};
|
||||
|
||||
Type editorSettingsType = typeof(EditorSettings);
|
||||
|
||||
PropertyInfo schemeProperty = editorSettingsType.GetProperty(
|
||||
"gameObjectNamingScheme",
|
||||
BindingFlags.Public | BindingFlags.Static);
|
||||
if (schemeProperty != null)
|
||||
{
|
||||
object value = schemeProperty.GetValue(null);
|
||||
if (value != null)
|
||||
settings.Scheme = ParseNamingScheme(value.ToString());
|
||||
}
|
||||
|
||||
PropertyInfo digitsProperty = editorSettingsType.GetProperty(
|
||||
"gameObjectNamingDigits",
|
||||
BindingFlags.Public | BindingFlags.Static);
|
||||
if (digitsProperty != null)
|
||||
{
|
||||
object value = digitsProperty.GetValue(null);
|
||||
if (value is int digits)
|
||||
settings.Digits = Mathf.Max(1, digits);
|
||||
}
|
||||
|
||||
PropertyInfo startsAtZeroProperty = editorSettingsType.GetProperty(
|
||||
"gameObjectNamingStartsAtZero",
|
||||
BindingFlags.Public | BindingFlags.Static);
|
||||
if (startsAtZeroProperty != null)
|
||||
{
|
||||
object value = startsAtZeroProperty.GetValue(null);
|
||||
if (value is bool startsAtZero)
|
||||
settings.StartsAtZero = startsAtZero;
|
||||
}
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
private static NamingScheme ParseNamingScheme(string rawValue)
|
||||
{
|
||||
if (string.IsNullOrEmpty(rawValue))
|
||||
return NamingScheme.SpaceParenthesis;
|
||||
|
||||
if (rawValue.IndexOf("dot", StringComparison.OrdinalIgnoreCase) >= 0)
|
||||
return NamingScheme.Dot;
|
||||
|
||||
if (rawValue.IndexOf("underscore", StringComparison.OrdinalIgnoreCase) >= 0)
|
||||
return NamingScheme.Underscore;
|
||||
|
||||
return NamingScheme.SpaceParenthesis;
|
||||
}
|
||||
|
||||
private static string BuildName(string baseName, NamingSettings namingSettings, int sequenceIndex)
|
||||
{
|
||||
int displayIndex = namingSettings.StartsAtZero ? sequenceIndex : sequenceIndex + 1;
|
||||
string number = displayIndex.ToString($"D{Mathf.Max(1, namingSettings.Digits)}");
|
||||
|
||||
return namingSettings.Scheme switch
|
||||
{
|
||||
NamingScheme.Dot => $"{baseName}.{number}",
|
||||
NamingScheme.Underscore => $"{baseName}_{number}",
|
||||
_ => $"{baseName} ({number})"
|
||||
};
|
||||
}
|
||||
|
||||
private static string NamingSchemeToText(NamingScheme namingScheme)
|
||||
{
|
||||
return namingScheme switch
|
||||
{
|
||||
NamingScheme.Dot => "Dot",
|
||||
NamingScheme.Underscore => "Underscore",
|
||||
_ => "Space Parenthesis"
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
11
Assets/Scripts/Editor/HierarchyBulkRenamerWindow.cs.meta
Normal file
11
Assets/Scripts/Editor/HierarchyBulkRenamerWindow.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 516b6b2c1d8342eb97498bb4d0f518cf
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
60
Assets/Scripts/Editor/HierarchySelectionCountOverlay.cs
Normal file
60
Assets/Scripts/Editor/HierarchySelectionCountOverlay.cs
Normal file
@ -0,0 +1,60 @@
|
||||
#if UNITY_EDITOR && UNITY_2021_2_OR_NEWER
|
||||
using UnityEditor;
|
||||
using UnityEditor.Overlays;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace RR.Common.InspectorOverrides
|
||||
{
|
||||
[Overlay(typeof(SceneView), id: "hierarchy-selection-count", displayName: "Hierarchy Selection Count")]
|
||||
[Icon("d_UnityEditor.SceneHierarchyWindow")]
|
||||
public sealed class HierarchySelectionCountOverlay : Overlay
|
||||
{
|
||||
private Label _countLabel;
|
||||
|
||||
public override void OnCreated()
|
||||
{
|
||||
Selection.selectionChanged += UpdateSelectionLabel;
|
||||
EditorApplication.hierarchyChanged += UpdateSelectionLabel;
|
||||
}
|
||||
|
||||
public override void OnWillBeDestroyed()
|
||||
{
|
||||
Selection.selectionChanged -= UpdateSelectionLabel;
|
||||
EditorApplication.hierarchyChanged -= UpdateSelectionLabel;
|
||||
}
|
||||
|
||||
public override VisualElement CreatePanelContent()
|
||||
{
|
||||
VisualElement root = new() { style = { minWidth = 180 } };
|
||||
|
||||
Label titleLabel = new("Выделение в Hierarchy")
|
||||
{
|
||||
style =
|
||||
{
|
||||
unityFontStyleAndWeight = FontStyle.Bold,
|
||||
marginBottom = 4
|
||||
}
|
||||
};
|
||||
root.Add(titleLabel);
|
||||
|
||||
_countLabel = new Label();
|
||||
root.Add(_countLabel);
|
||||
|
||||
UpdateSelectionLabel();
|
||||
return root;
|
||||
}
|
||||
|
||||
private void UpdateSelectionLabel()
|
||||
{
|
||||
if (_countLabel == null)
|
||||
return;
|
||||
|
||||
int selectedCount = HierarchySelectionCounter.GetSelectedHierarchyObjectCount();
|
||||
_countLabel.text = selectedCount == 0
|
||||
? "Сейчас ничего не выделено"
|
||||
: $"Выделено объектов: {selectedCount}";
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
11
Assets/Scripts/Editor/HierarchySelectionCountOverlay.cs.meta
Normal file
11
Assets/Scripts/Editor/HierarchySelectionCountOverlay.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 71dcf1a965b74a9eb34892092f54753d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
34
Assets/Scripts/Editor/HierarchySelectionCounter.cs
Normal file
34
Assets/Scripts/Editor/HierarchySelectionCounter.cs
Normal file
@ -0,0 +1,34 @@
|
||||
#if UNITY_EDITOR
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RR.Common.InspectorOverrides
|
||||
{
|
||||
public static class HierarchySelectionCounter
|
||||
{
|
||||
public static int GetSelectedHierarchyObjectCount()
|
||||
{
|
||||
return Selection.gameObjects.Count(gameObject => gameObject != null && gameObject.scene.IsValid());
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Hierarchy/Count Selected Objects %#h")]
|
||||
private static void CountSelectedObjects()
|
||||
{
|
||||
int selectedCount = GetSelectedHierarchyObjectCount();
|
||||
string message = selectedCount == 0
|
||||
? "В Hierarchy ничего не выделено."
|
||||
: $"Выделено объектов в Hierarchy: {selectedCount}";
|
||||
|
||||
Debug.Log($"[HierarchySelectionCounter] {message}");
|
||||
EditorUtility.DisplayDialog("Hierarchy Selection Counter", message, "OK");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Hierarchy/Count Selected Objects %#h", true)]
|
||||
private static bool ValidateCountSelectedObjects()
|
||||
{
|
||||
return GetSelectedHierarchyObjectCount() > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
11
Assets/Scripts/Editor/HierarchySelectionCounter.cs.meta
Normal file
11
Assets/Scripts/Editor/HierarchySelectionCounter.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5b5f9f5b1dd7459f8bce20d31a850049
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -45,6 +45,7 @@ namespace RR.Common.InspectorOverrides
|
||||
var displayAsPercentageProp = property.FindPropertyRelative("displayAsPercentage");
|
||||
var floatDisplayFormatProp = property.FindPropertyRelative("floatDisplayFormat");
|
||||
var floatStepProp = property.FindPropertyRelative("floatStep");
|
||||
var optionPickerDisplayFormatProp = property.FindPropertyRelative("optionPickerDisplayFormat");
|
||||
|
||||
var applyProp = property.FindPropertyRelative("applyTarget");
|
||||
var audioTargetProp = property.FindPropertyRelative("audioTargetType");
|
||||
@ -142,6 +143,7 @@ namespace RR.Common.InspectorOverrides
|
||||
|
||||
DrawProp(ref r, optionsProp, "Options", includeChildren: true);
|
||||
DrawProp(ref r, defOptionIndexProp, "Default Index");
|
||||
DrawProp(ref r, optionPickerDisplayFormatProp, "Display Format");
|
||||
break;
|
||||
}
|
||||
|
||||
@ -264,6 +266,7 @@ namespace RR.Common.InspectorOverrides
|
||||
var optionsProp = property.FindPropertyRelative("options");
|
||||
h += HeightOf(optionsProp, true) + space; // options list
|
||||
h += line + space; // defaultOptionIndex
|
||||
h += line + space; // optionPickerDisplayFormat
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ namespace RR.Common.Entities.Props
|
||||
{
|
||||
public sealed class BatCollectible : EnvironmentalCollectibleBase
|
||||
{
|
||||
public override bool CountsTowardsSharedCollectionLimit => true;
|
||||
|
||||
[SerializeField] private float moveSpeed = 1.75f;
|
||||
[SerializeField] private float verticalAmplitude = 0.35f;
|
||||
[SerializeField] private float verticalFrequency = 2.4f;
|
||||
|
||||
@ -24,6 +24,7 @@ namespace RR.Common.Entities.Props
|
||||
|
||||
public int Points => points;
|
||||
public Vector3 SpawnPosition => _spawnPosition;
|
||||
public virtual bool CountsTowardsSharedCollectionLimit => false;
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
@ -95,8 +96,14 @@ namespace RR.Common.Entities.Props
|
||||
_collected = true;
|
||||
OnCollected();
|
||||
|
||||
if (points > 0)
|
||||
if (CountsTowardsSharedCollectionLimit)
|
||||
{
|
||||
ScoreSystem.Instance?.RegisterSharedEnvironmentalCollectibleCollected(points);
|
||||
}
|
||||
else if (points > 0)
|
||||
{
|
||||
ScoreSystem.Instance?.RegisterEnvironmentalPoints(points);
|
||||
}
|
||||
|
||||
Collected?.Invoke(this);
|
||||
Destroy(gameObject);
|
||||
|
||||
@ -4,6 +4,8 @@ namespace RR.Common.Entities.Props
|
||||
{
|
||||
public sealed class LeafCollectible : EnvironmentalCollectibleBase
|
||||
{
|
||||
public override bool CountsTowardsSharedCollectionLimit => true;
|
||||
|
||||
[Header("Fall")]
|
||||
[SerializeField] private float fallSpeed = 1.25f;
|
||||
[SerializeField] private float horizontalAmplitude = 0.4f;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user