chore(project): sync startup and tooling updates
- добавлены проектные инструкции AGENTS.md: зафиксированы правила работы с документацией, сообщениями коммитов, MCP-инструментами и Unity MCP workflow для дальнейшей разработки - проверка лицензии вынесена из GameManager в отдельный StartupLicenseManager: код WinAPI, запуск RRLauncher.exe, обработка таймаута, возврат фокуса, установка fullscreen-режима и клик в центр перенесены в отдельный долгоживущий компонент - обновлена инициализация глобальных сервисов: GlobalsManager теперь добавляет и инициализирует StartupLicenseManager, а Globals.prefab содержит новый компонент рядом с остальными runtime-сервисами - обновлены Unity Editor и зависимости проекта: версия проекта поднята до 6000.3.14f1, обновлены ai.inference, collab-proxy, inputsystem, timeline, visualscripting и связанные lock-записи - синхронизированы проектные настройки и generated assets после обновления Unity: обновлены ProjectSettings, URP global settings, TMP/font assets, tile/prefab meta-данные и связанные ресурсы сцен - скорректирован MainMenu UI: символ валюты заменен на текстовое обозначение руб., а также сохранены небольшие Unity-сериализованные изменения layout/scrollbar-значений - добавлены правила .gitignore для локальных служебных артефактов: Codex/RAG-индекса, .NET SDK telemetry/cache и Unity recovery-сцен - удалены из отслеживания ранее попавшие в репозиторий файлы .dotnet и Assets/_Recovery: новые служебные файлы этих каталогов больше не будут засорять рабочее дерево
This commit is contained in:
parent
cb2e83a596
commit
942c5dd9fa
@ -1 +0,0 @@
|
||||
False
|
||||
@ -1 +0,0 @@
|
||||
9cac9297-b74d-4f18-91bf-f665d42c0a54
|
||||
@ -1 +0,0 @@
|
||||
204cdaf9-d3c0-4fc2-9d60-984b9b010f21
|
||||
@ -1,5 +0,0 @@
|
||||
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==
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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==
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
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==
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@ -17,6 +17,15 @@
|
||||
*.req.json
|
||||
*.res.json
|
||||
|
||||
# Local agent/RAG indexes and tool caches
|
||||
/.codex/
|
||||
|
||||
# Local .NET SDK telemetry/cache created by tool runs
|
||||
/.dotnet/
|
||||
|
||||
# Unity recovery scenes are editor-local crash/autosave artifacts
|
||||
/[Aa]ssets/_Recovery/
|
||||
|
||||
#
|
||||
## --------------------------------------------
|
||||
|
||||
|
||||
36
AGENTS.md
Normal file
36
AGENTS.md
Normal file
@ -0,0 +1,36 @@
|
||||
# Agent Guidance
|
||||
|
||||
## Documentation Language
|
||||
|
||||
- Write all project documentation in Russian by default.
|
||||
- Apply this rule to guides, READMEs, setup notes, conventions, and other repository documentation unless the user explicitly asks for another language.
|
||||
|
||||
## Git Commit Messages
|
||||
|
||||
- При создании коммитов первая строка сообщения должна быть кратким описанием изменений на английском языке.
|
||||
- Начиная с третьей строки сообщения коммита следует указывать подробный список изменений на русском языке.
|
||||
|
||||
## MCP Tool Preference
|
||||
|
||||
- При подходящих сценариях агенту следует по максимуму отдавать приоритет MCP-серверам `claude-core`, `claude-explorer` и `claude-rag` вместо встроенных инструментов.
|
||||
- `claude-core` следует предпочитать для чтения и редактирования файлов, поиска по проекту, работы с задачами и базовых shell-операций, если его возможностей достаточно.
|
||||
- `claude-explorer` следует предпочитать для изучения архитектуры, исходников, команд и внутренних инструментов Claude Code.
|
||||
- `claude-rag` следует предпочитать для семантического поиска по проекту, анализа больших объёмов кода и ситуаций, где локальный индекс даёт преимущество над обычным текстовым поиском.
|
||||
- Память о проекте, его договорённостях, архитектурных решениях, важных гайдах, кодовой базе и ранее выявленном контексте следует по возможности сохранять и повторно использовать через `claude-rag`.
|
||||
- Кодовую базу проекта также следует по возможности индексировать и использовать через `claude-rag`, чтобы агент мог опираться на локальную семантическую память о структуре, модулях, связях и ранее изученных участках кода.
|
||||
- При повторяющихся задачах, исследовании крупных подсистем, возвращении к старым решениям, поиске проектного контекста и анализе существующей кодовой базы агенту следует сначала опираться на `claude-rag`, если для этого подходит локальный индекс.
|
||||
- Если MCP-инструмент хуже подходит для конкретной задачи, недоступен или создаёт лишние ограничения, агент может использовать встроенные инструменты как запасной вариант.
|
||||
|
||||
## Unity MCP Workflow
|
||||
|
||||
- При работе с Unity-проектом агенту следует по возможности использовать MCP-сервер `unityMCP` как основной инструмент взаимодействия с Unity Editor.
|
||||
- `unityMCP` следует предпочитать для задач, связанных со сценами, GameObject, компонентами, prefab, ассетами, материалами, камерами, настройками рендеринга, физикой, Build Settings, Unity Console, тестами и состоянием редактора.
|
||||
- Перед изменениями внутри Unity желательно читать актуальное состояние редактора через `mcpforunity://editor/state`, а при необходимости также `mcpforunity://project/info`, `mcpforunity://instances`, `mcpforunity://custom-tools` и `mcpforunity://tool-groups`.
|
||||
- Если доступно несколько Unity Editor-инстансов, агент должен сначала проверить `mcpforunity://instances` и выбрать нужный проект через `set_active_instance`, не выполняя изменения вслепую.
|
||||
- Для массовых операций в Unity следует предпочитать `batch_execute`, чтобы уменьшать количество отдельных вызовов и сохранять изменения согласованными.
|
||||
- Для создания, изменения и проверки C#-скриптов в Unity следует предпочитать инструменты `unityMCP` вроде `create_script`, `script_apply_edits`, `apply_text_edits`, `validate_script`, `refresh_unity` и `read_console`, если задача требует реакции Unity Editor или проверки компиляции.
|
||||
- После изменений в скриптах, сценах, prefab, ассетах или настройках проекта агент должен по возможности обновить Unity через `refresh_unity`, проверить готовность редактора и прочитать `read_console`, чтобы выявить ошибки компиляции или импорта.
|
||||
- Для проверки Unity API, сигнатур классов, методов и свойств перед написанием кода следует использовать `unity_reflect` и/или `unity_docs`, если соответствующая группа инструментов доступна.
|
||||
- Для запуска EditMode/PlayMode-проверок следует использовать `run_tests` и `get_test_job`, если тестовая группа `unityMCP` доступна и это уместно для задачи.
|
||||
- Если нужная группа возможностей `unityMCP` отключена, агент может включить её через `manage_tools`, когда это оправдано задачей.
|
||||
- Если `unityMCP` недоступен, не видит активный Unity Editor, возвращает ошибку или хуже подходит для конкретной операции, агент может использовать файловые инструменты и обычные shell-команды как запасной путь, явно учитывая риск отсутствия проверки внутри Unity.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -10,6 +10,7 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 6708844088101150}
|
||||
- component: {fileID: -6830167632558745604}
|
||||
- component: {fileID: -7355179224228813161}
|
||||
- component: {fileID: 7290507550622501242}
|
||||
- component: {fileID: -3401184227323537348}
|
||||
- component: {fileID: -6245296037342915518}
|
||||
@ -52,6 +53,18 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: e679be5faf94f304d8251931f02c036a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: '::'
|
||||
--- !u!114 &-7355179224228813161
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4763496076470024150}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c35b5d0979bb4ff8b1b62da9d44ebf25, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::RR.Game2D.Core.Managers.StartupLicenseManager
|
||||
--- !u!114 &7290507550622501242
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -211,8 +211,8 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 0}
|
||||
m_MinAnimationSpeed: 1
|
||||
m_MaxAnimationSpeed: 1
|
||||
m_PerlinScale: 0.5
|
||||
m_Output: 0
|
||||
m_PerlinScale: 0.506
|
||||
m_Output: 1
|
||||
m_ColliderType: 1
|
||||
m_RandomTransform: 0
|
||||
m_Neighbors: 01000000010000000100000001000000
|
||||
|
||||
@ -430,6 +430,7 @@ Tilemap:
|
||||
e33: 1
|
||||
--- !u!483693784 &6972310934434671365
|
||||
TilemapRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@ -475,6 +476,7 @@ TilemapRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_ChunkSize: {x: 32, y: 32, z: 32}
|
||||
m_ChunkCullingBounds: {x: 0, y: 0, z: 0}
|
||||
m_MaxChunkCount: 16
|
||||
@ -482,7 +484,6 @@ TilemapRenderer:
|
||||
m_SortOrder: 0
|
||||
m_Mode: 0
|
||||
m_DetectChunkCullingBounds: 0
|
||||
m_MaskInteraction: 0
|
||||
--- !u!114 &5529654987520353606
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -37,7 +37,7 @@ TextureImporter:
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
@ -48,7 +48,7 @@ TextureImporter:
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 256
|
||||
@ -75,7 +75,7 @@ TextureImporter:
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
||||
@ -37,7 +37,7 @@ TextureImporter:
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
@ -48,7 +48,7 @@ TextureImporter:
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
@ -75,7 +75,7 @@ TextureImporter:
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
@ -130,11 +130,11 @@ TextureImporter:
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 5
|
||||
width: 1792
|
||||
height: 1531
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
@ -147,11 +147,847 @@ TextureImporter:
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 8d5d632a13b5f1247bdfdf42c015b4db
|
||||
internalID: -1608601578
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 67f30d51802b704468f90d93abe08386
|
||||
internalID: -1370314462
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_3
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 768
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 1193a9b6b3f275f41af26d9a91bd1799
|
||||
internalID: 278802906
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_4
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1024
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 6ff18bac83e31a34aafbcabb87172ef3
|
||||
internalID: -837230164
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_5
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1280
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 9cbb7f989d1779b47b0e7fdfaca4d3d0
|
||||
internalID: -608911867
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_6
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 1280
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: bf1a8e293024c5548bd337a8e44d7d2a
|
||||
internalID: 1996641130
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_7
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 6a42c633543a94a42b5b6f316b1e64a5
|
||||
internalID: 376241231
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_8
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0f1fd887341feb043a62be1420717e25
|
||||
internalID: 566602086
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_9
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: fb0a35a4c00015a4f97dfa004b48a706
|
||||
internalID: -1026027896
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_10
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 768
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 2140c85cee7d4fc4a9f34b6c8f764dff
|
||||
internalID: -2122941138
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_11
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1024
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: d43cd6da4bdb1964aa1eacc53fa5fa93
|
||||
internalID: -375884924
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_12
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1280
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 9e691f751d15eaf46bb2f01a860d562d
|
||||
internalID: -427802510
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_13
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 1024
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: f579e0365e5daa240b3d81e02759797a
|
||||
internalID: 1910012740
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_14
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: e7437b3dbf29bd941aebc689d7e29a52
|
||||
internalID: -1427976571
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_15
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 73e03874529f90b4f9a16b2ce879efde
|
||||
internalID: -12274565
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_16
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 643995077126ec84f864f7846f3439fc
|
||||
internalID: 921372340
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_17
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 768
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 055ccfe581bcbd344859d4d8c234068e
|
||||
internalID: -1219460144
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_18
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1024
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: d235bbd472699e94aa83d1a05b47942a
|
||||
internalID: -361044423
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_19
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1280
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 068e12ebcbb81c74495c3fa01d2d7280
|
||||
internalID: 510701577
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_20
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 768
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 440db1be57448694c8575ff0c94ba458
|
||||
internalID: -79327215
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_21
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 06a4a367bd9019d449a2209ab0364e4e
|
||||
internalID: 1381712740
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_22
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 3ee3a80e29b1e024c9ab72073a401486
|
||||
internalID: -1004148726
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_23
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 611ff42793111cb4dbfb6715f6d5fc01
|
||||
internalID: 460325217
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_24
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 768
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 3d778b998ebdddb489733b9820a9e8b5
|
||||
internalID: 1664779085
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_25
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1024
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: b8d304fd39fad124d8fcb0210f772ba4
|
||||
internalID: 1180118557
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_26
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1280
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: da7ecf012ef11bc4392d7f1e73a9f733
|
||||
internalID: 523911355
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_27
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 512
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 93badb68bb813ec4d94e5969a89d2cc8
|
||||
internalID: -1560850667
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_28
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 8063288705fcbf1488ec22db3929efef
|
||||
internalID: -2072276093
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_29
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 7abe1f7ba6d7a244c8432325aaa2f253
|
||||
internalID: -1431171273
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_30
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 981cc6330f1f5cc46954eb69198a44d1
|
||||
internalID: 1060209914
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_31
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 768
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: c303dc25529ab0a46a243c7601a2c017
|
||||
internalID: 2114356743
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_32
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1024
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 8088d953c868fbb4e9acc6563fe88aef
|
||||
internalID: 1546023537
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_33
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1280
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0e23fc523dd295341b2cc4e9e1732969
|
||||
internalID: -900687120
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_34
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 256
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 1d21318f6a8d8094b9f73e0e813c03e9
|
||||
internalID: -1226819572
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_35
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: deeebcb5482f8e447bb65cb5f08bed02
|
||||
internalID: 1195237641
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_36
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 85a9044f2dd88444f9809501cb666aea
|
||||
internalID: 1802237477
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_37
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 9bb9aa1005f41b843b2fe7d82f0c9966
|
||||
internalID: 1491325928
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: Level_3_256x256_v2_38
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1536
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 1eabeec7b3f8a9a499f868280941ad65
|
||||
internalID: -593130101
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
spriteID: dee7b4af98a962145bfcebba1d6c4872
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
@ -159,9 +995,49 @@ TextureImporter:
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
entries:
|
||||
- key: SpriteEditor.SliceSettings
|
||||
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":256.0,"y":256.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":1,"keepEmptyRects":false,"isAlternate":false}'
|
||||
nameFileIdTable:
|
||||
Level_3_256x256_v2_0: -3142202629690266425
|
||||
Level_3_256x256_v2_1: -1608601578
|
||||
Level_3_256x256_v2_10: -2122941138
|
||||
Level_3_256x256_v2_11: -375884924
|
||||
Level_3_256x256_v2_12: -427802510
|
||||
Level_3_256x256_v2_13: 1910012740
|
||||
Level_3_256x256_v2_14: -1427976571
|
||||
Level_3_256x256_v2_15: -12274565
|
||||
Level_3_256x256_v2_16: 921372340
|
||||
Level_3_256x256_v2_17: -1219460144
|
||||
Level_3_256x256_v2_18: -361044423
|
||||
Level_3_256x256_v2_19: 510701577
|
||||
Level_3_256x256_v2_2: -1370314462
|
||||
Level_3_256x256_v2_20: -79327215
|
||||
Level_3_256x256_v2_21: 1381712740
|
||||
Level_3_256x256_v2_22: -1004148726
|
||||
Level_3_256x256_v2_23: 460325217
|
||||
Level_3_256x256_v2_24: 1664779085
|
||||
Level_3_256x256_v2_25: 1180118557
|
||||
Level_3_256x256_v2_26: 523911355
|
||||
Level_3_256x256_v2_27: -1560850667
|
||||
Level_3_256x256_v2_28: -2072276093
|
||||
Level_3_256x256_v2_29: -1431171273
|
||||
Level_3_256x256_v2_3: 278802906
|
||||
Level_3_256x256_v2_30: 1060209914
|
||||
Level_3_256x256_v2_31: 2114356743
|
||||
Level_3_256x256_v2_32: 1546023537
|
||||
Level_3_256x256_v2_33: -900687120
|
||||
Level_3_256x256_v2_34: -1226819572
|
||||
Level_3_256x256_v2_35: 1195237641
|
||||
Level_3_256x256_v2_36: 1802237477
|
||||
Level_3_256x256_v2_37: 1491325928
|
||||
Level_3_256x256_v2_38: -593130101
|
||||
Level_3_256x256_v2_4: -837230164
|
||||
Level_3_256x256_v2_5: -608911867
|
||||
Level_3_256x256_v2_6: 1996641130
|
||||
Level_3_256x256_v2_7: 376241231
|
||||
Level_3_256x256_v2_8: 566602086
|
||||
Level_3_256x256_v2_9: -1026027896
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
|
||||
@ -11250,7 +11250,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 2095324742}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.99999815
|
||||
m_Size: 0.9999984
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -13870,7 +13870,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0008981459}
|
||||
m_AnchoredPosition: {x: 0, y: 0.00094690814}
|
||||
m_SizeDelta: {x: 0, y: 300}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!1 &356011273
|
||||
@ -17689,7 +17689,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u20BD"
|
||||
m_text: "\u0440\u0443\u0431."
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
m_sharedMaterial: {fileID: 2036267684637915601, guid: 4ef792f79e96f814cac2dd9b8734773d, type: 2}
|
||||
@ -27163,7 +27163,6 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.UI.RulesPrizeListPage
|
||||
targetText: {fileID: 1161291309}
|
||||
enableTextAutoSize: 1
|
||||
title: "\u041F\u0440\u0438\u0437\u044B \u0437\u0430 \u0443\u0440\u043E\u0432\u043D\u0438"
|
||||
emptyPrizeText: "\u0431\u0435\u0437 \u043F\u0440\u0438\u0437\u0430"
|
||||
noLevelsText: "\u0423\u0440\u043E\u0432\u043D\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B."
|
||||
@ -34958,7 +34957,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 2020837601}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.9999985
|
||||
m_Size: 0.99999857
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -48090,7 +48089,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 1610175936}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.9999985
|
||||
m_Size: 0.99999857
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -50359,7 +50358,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0008981459}
|
||||
m_AnchoredPosition: {x: 0, y: 0.00094690814}
|
||||
m_SizeDelta: {x: 0, y: 300}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!1 &1650228246
|
||||
@ -55216,7 +55215,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 893290822}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.9999985
|
||||
m_Size: 0.99999857
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -57603,7 +57602,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0008981459}
|
||||
m_AnchoredPosition: {x: 0, y: 0.00094690814}
|
||||
m_SizeDelta: {x: 0, y: 300}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &1960579128
|
||||
@ -58347,7 +58346,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 971448637}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.9999985
|
||||
m_Size: 0.99999857
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -59613,7 +59612,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0009161392}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0009469454}
|
||||
m_SizeDelta: {x: 0, y: 300}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!1 &2052527768
|
||||
@ -59649,7 +59648,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0.0008981459}
|
||||
m_AnchoredPosition: {x: 0, y: 0.00094690814}
|
||||
m_SizeDelta: {x: 0, y: 300}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &2052527770
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using RR.Common.Controls;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
@ -11,9 +10,6 @@ using RR.Common.Settings;
|
||||
using RR.Common.Utility;
|
||||
using RR.Game2D.Behaviour;
|
||||
using RR.Game2D.Entities;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
namespace RR.Game2D.Core.Managers
|
||||
{
|
||||
@ -34,7 +30,6 @@ namespace RR.Game2D.Core.Managers
|
||||
public BalanceManager Balance {get; private set;}
|
||||
// Inactivity control for game
|
||||
public InactivityManager Inactivity {get; private set;}
|
||||
|
||||
// Plate control for game
|
||||
public ComSystemManager Plate { get; private set; }
|
||||
// Light control for game
|
||||
@ -77,7 +72,7 @@ namespace RR.Game2D.Core.Managers
|
||||
|
||||
// События менеджера
|
||||
public event Action<bool> PauseStateChanged; // Когда меняется состояние паузы
|
||||
public event Action<GameObject> PlayerSpawned; // Когда игрос спавнится на сцене
|
||||
public event Action<GameObject> PlayerSpawned; // Когда игрок спавнится на сцене
|
||||
public event Action<int> CoinsChanged; // Когда меняется кол-во монет
|
||||
public event Action<int> MaxLivesChanged; // Когда меняется максимальное кол-во жизней
|
||||
public event Action<int> LivesChanged; // Когда меняется кол-во жизней
|
||||
@ -110,12 +105,6 @@ namespace RR.Game2D.Core.Managers
|
||||
DontDestroyOnLoad(gameObject);
|
||||
// -------------------
|
||||
|
||||
#if UNITY_EDITOR
|
||||
Debug.Log("[License] Unity Editor detected. License check skipped.");
|
||||
#else
|
||||
StartCoroutine(CheckLicenseCoroutine());
|
||||
#endif
|
||||
|
||||
// Initialize Logger
|
||||
if (Logger == null)
|
||||
{
|
||||
@ -756,310 +745,5 @@ public void TogglePause() => SetPause(!IsPaused);
|
||||
|
||||
#endregion
|
||||
|
||||
#region DEFENCE
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct PROCESS_INFORMATION
|
||||
{
|
||||
public IntPtr hProcess;
|
||||
public IntPtr hThread;
|
||||
public int dwProcessId;
|
||||
public int dwThreadId;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||
private struct STARTUPINFO
|
||||
{
|
||||
public int cb;
|
||||
public string lpReserved;
|
||||
public string lpDesktop;
|
||||
public string lpTitle;
|
||||
public int dwX;
|
||||
public int dwY;
|
||||
public int dwXSize;
|
||||
public int dwYSize;
|
||||
public int dwXCountChars;
|
||||
public int dwYCountChars;
|
||||
public int dwFillAttribute;
|
||||
public int dwFlags;
|
||||
public short wShowWindow;
|
||||
public short cbReserved2;
|
||||
public IntPtr lpReserved2;
|
||||
public IntPtr hStdInput;
|
||||
public IntPtr hStdOutput;
|
||||
public IntPtr hStdError;
|
||||
}
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
private static extern bool CreateProcess(
|
||||
string lpApplicationName,
|
||||
string lpCommandLine,
|
||||
IntPtr lpProcessAttributes,
|
||||
IntPtr lpThreadAttributes,
|
||||
bool bInheritHandles,
|
||||
uint dwCreationFlags,
|
||||
IntPtr lpEnvironment,
|
||||
string lpCurrentDirectory,
|
||||
ref STARTUPINFO lpStartupInfo,
|
||||
out PROCESS_INFORMATION lpProcessInformation);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern bool GetExitCodeProcess(IntPtr hProcess, out uint lpExitCode);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
private const uint WAIT_TIMEOUT = 0x00000102;
|
||||
private const uint WAIT_OBJECT_0 = 0x00000000;
|
||||
|
||||
private System.Collections.IEnumerator CheckLicenseCoroutine()
|
||||
{
|
||||
// Ждём один кадр, чтобы Unity завершил инициализацию
|
||||
yield return null;
|
||||
|
||||
bool licenseValid = false;
|
||||
bool checkCompleted = false;
|
||||
//bool licenseValid = true;
|
||||
//bool checkCompleted = true;
|
||||
string errorMessage = "";
|
||||
|
||||
// Запускаем проверку в отдельном потоке (совместимо с IL2CPP)
|
||||
System.Threading.Thread thread = new System.Threading.Thread(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
licenseValid = CheckLicense();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
errorMessage = ex.Message;
|
||||
}
|
||||
finally
|
||||
{
|
||||
checkCompleted = true;
|
||||
}
|
||||
});
|
||||
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
|
||||
float timerest = 30f;
|
||||
while (!checkCompleted && timerest > 0)
|
||||
{
|
||||
timerest -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
if (!checkCompleted) licenseValid = false;
|
||||
|
||||
if (!licenseValid)
|
||||
{
|
||||
yield return new WaitForSeconds(3f);
|
||||
|
||||
#if UNITY_EDITOR
|
||||
EditorApplication.isPlaying = false;
|
||||
#else
|
||||
Application.Quit();
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
//exclusive
|
||||
Screen.fullScreenMode = FullScreenMode.ExclusiveFullScreen;
|
||||
Screen.SetResolution(1920, 1080, true);
|
||||
ClickCenter();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private bool CheckLicense()
|
||||
{
|
||||
try
|
||||
{
|
||||
string launcherName = "RRLauncher.exe";
|
||||
string launcherPath = null;
|
||||
|
||||
// Поиск лаунчера рядом с исполняемым файлом
|
||||
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
string pathInBase = Path.Combine(baseDirectory, launcherName);
|
||||
|
||||
if (File.Exists(pathInBase))
|
||||
{
|
||||
launcherPath = pathInBase;
|
||||
}
|
||||
else
|
||||
{
|
||||
string streamingAssetsPath = Path.Combine(Application.streamingAssetsPath, launcherName);
|
||||
if (File.Exists(streamingAssetsPath))
|
||||
{
|
||||
launcherPath = streamingAssetsPath;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
STARTUPINFO si = new STARTUPINFO();
|
||||
si.cb = Marshal.SizeOf(si);
|
||||
PROCESS_INFORMATION pi;
|
||||
|
||||
string workingDir = Path.GetDirectoryName(launcherPath);
|
||||
|
||||
bool success = CreateProcess(
|
||||
launcherPath,
|
||||
null,
|
||||
IntPtr.Zero,
|
||||
IntPtr.Zero,
|
||||
false,
|
||||
0,
|
||||
IntPtr.Zero,
|
||||
workingDir,
|
||||
ref si,
|
||||
out pi);
|
||||
|
||||
if (!success) return false;
|
||||
uint waitResult = WaitForSingleObject(pi.hProcess, 30000);
|
||||
|
||||
if (waitResult == WAIT_TIMEOUT)
|
||||
{
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Получение кода возврата
|
||||
uint exitCode;
|
||||
if (!GetExitCodeProcess(pi.hProcess, out exitCode))
|
||||
{
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
return false;
|
||||
}
|
||||
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
|
||||
if (exitCode == 0)
|
||||
{
|
||||
ForceToFront();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception outerEx)
|
||||
{
|
||||
Debug.LogError($"[License] CRITICAL ERROR in CheckLicense: {outerEx.Message}");
|
||||
Debug.LogError($"[License] Stack trace: {outerEx.StackTrace}");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
#region FORCE TO FRONT
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool SetForegroundWindow(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetActiveWindow();
|
||||
|
||||
public void ForceToFront()//Метод который возвращает фокус а окно после открытия защиты
|
||||
{
|
||||
IntPtr handle = GetActiveWindow();
|
||||
SetForegroundWindow(handle);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region клик в центр
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct INPUT
|
||||
{
|
||||
public uint type;
|
||||
public MOUSEINPUT mi;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct MOUSEINPUT
|
||||
{
|
||||
public int dx;
|
||||
public int dy;
|
||||
public uint mouseData;
|
||||
public uint dwFlags;
|
||||
public uint time;
|
||||
public IntPtr dwExtraInfo;
|
||||
}
|
||||
|
||||
private const uint INPUT_MOUSE = 0;
|
||||
private const uint MOUSEEVENTF_MOVE = 0x0001;
|
||||
private const uint MOUSEEVENTF_ABSOLUTE = 0x8000;
|
||||
private const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
|
||||
private const uint MOUSEEVENTF_LEFTUP = 0x0004;
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);
|
||||
|
||||
public static void ClickCenter()
|
||||
{
|
||||
int screenX = Screen.currentResolution.width / 2;
|
||||
int screenY = Screen.currentResolution.height / 2;
|
||||
|
||||
// WinAPI использует координаты 0–65535
|
||||
int absoluteX = (int)(screenX * 65535 / Screen.currentResolution.width);
|
||||
int absoluteY = (int)(screenY * 65535 / Screen.currentResolution.height);
|
||||
|
||||
INPUT[] inputs = new INPUT[3];
|
||||
|
||||
// движение мыши
|
||||
inputs[0] = new INPUT
|
||||
{
|
||||
type = INPUT_MOUSE,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dx = absoluteX,
|
||||
dy = absoluteY,
|
||||
dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE,
|
||||
}
|
||||
};
|
||||
|
||||
// нажатие
|
||||
inputs[1] = new INPUT
|
||||
{
|
||||
type = INPUT_MOUSE,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dwFlags = MOUSEEVENTF_LEFTDOWN
|
||||
}
|
||||
};
|
||||
|
||||
// отпускание
|
||||
inputs[2] = new INPUT
|
||||
{
|
||||
type = INPUT_MOUSE,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dwFlags = MOUSEEVENTF_LEFTUP
|
||||
}
|
||||
};
|
||||
SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(typeof(INPUT)));
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ namespace RR.Common.Managers
|
||||
private PrizeSystem _prizeSystem;
|
||||
private PrizeSystemManager _prizeSystemManager;
|
||||
private PaymentManager _paymentManager;
|
||||
private StartupLicenseManager _startupLicenseManager;
|
||||
private ComInputToInputSystemAdapter _adapter;
|
||||
|
||||
private void Awake()
|
||||
@ -24,6 +25,7 @@ namespace RR.Common.Managers
|
||||
_prizeSystem = GetComponent<PrizeSystem>();
|
||||
_prizeSystemManager = GetComponent<PrizeSystemManager>();
|
||||
_paymentManager = GetComponent<PaymentManager>();
|
||||
_startupLicenseManager = GetComponent<StartupLicenseManager>();
|
||||
_adapter = GetComponent<ComInputToInputSystemAdapter>();
|
||||
|
||||
if (_settingsManager == null) _settingsManager = gameObject.AddComponent<SettingsManager>();
|
||||
@ -32,6 +34,7 @@ namespace RR.Common.Managers
|
||||
if (_prizeSystem == null) _prizeSystem = gameObject.AddComponent<PrizeSystem>();
|
||||
if (_prizeSystemManager == null) _prizeSystemManager = gameObject.AddComponent<PrizeSystemManager>();
|
||||
if (_paymentManager == null) _paymentManager = gameObject.AddComponent<PaymentManager>();
|
||||
if (_startupLicenseManager == null) _startupLicenseManager = gameObject.AddComponent<StartupLicenseManager>();
|
||||
if (_adapter == null) _adapter = gameObject.AddComponent<ComInputToInputSystemAdapter>();
|
||||
|
||||
_settingsManager.Initialize();
|
||||
@ -51,6 +54,9 @@ namespace RR.Common.Managers
|
||||
|
||||
_paymentManager.Initialize();
|
||||
GameManager.Logger.Log(name, "PaymentManager successfully initialized.");
|
||||
|
||||
_startupLicenseManager.Initialize();
|
||||
GameManager.Logger.Log(name, "StartupLicenseManager successfully initialized.");
|
||||
|
||||
_adapter.Initialize();
|
||||
GameManager.Logger.Log(name, "InputAdapter successfully initialized.");
|
||||
|
||||
338
Assets/Scripts/Managers/StartupLicenseManager.cs
Normal file
338
Assets/Scripts/Managers/StartupLicenseManager.cs
Normal file
@ -0,0 +1,338 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using UnityEngine;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
namespace RR.Game2D.Core.Managers
|
||||
{
|
||||
/// <summary>
|
||||
/// Выполняет проверку лицензии при запуске приложения и пропускает ее в dev-среде.
|
||||
/// </summary>
|
||||
public class StartupLicenseManager : MonoBehaviour
|
||||
{
|
||||
private const string LauncherName = "RRLauncher.exe";
|
||||
private const float CheckTimeoutSeconds = 30f;
|
||||
private const float QuitDelaySeconds = 3f;
|
||||
private const uint WaitTimeout = 0x00000102;
|
||||
|
||||
private bool _isInitialized;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
if (_isInitialized) return;
|
||||
|
||||
_isInitialized = true;
|
||||
StartCoroutine(CheckLicenseCoroutine());
|
||||
}
|
||||
|
||||
private IEnumerator CheckLicenseCoroutine()
|
||||
{
|
||||
// Ждем один кадр, чтобы Unity завершил базовую инициализацию.
|
||||
yield return null;
|
||||
|
||||
if (ShouldSkipLicenseCheck())
|
||||
{
|
||||
ApplyLicensedStartupState();
|
||||
yield break;
|
||||
}
|
||||
|
||||
bool licenseValid = false;
|
||||
bool checkCompleted = false;
|
||||
Exception licenseCheckException = null;
|
||||
|
||||
Thread thread = new Thread(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
licenseValid = CheckLicense();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
licenseCheckException = ex;
|
||||
}
|
||||
finally
|
||||
{
|
||||
checkCompleted = true;
|
||||
}
|
||||
})
|
||||
{
|
||||
IsBackground = true
|
||||
};
|
||||
|
||||
thread.Start();
|
||||
|
||||
float timeLeft = CheckTimeoutSeconds;
|
||||
while (!checkCompleted && timeLeft > 0f)
|
||||
{
|
||||
timeLeft -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
if (!checkCompleted)
|
||||
{
|
||||
Debug.LogError("[License] License check timed out.");
|
||||
licenseValid = false;
|
||||
}
|
||||
|
||||
if (licenseCheckException != null)
|
||||
{
|
||||
Debug.LogError($"[License] License check failed: {licenseCheckException.Message}");
|
||||
Debug.LogError($"[License] Stack trace: {licenseCheckException.StackTrace}");
|
||||
licenseValid = false;
|
||||
}
|
||||
|
||||
if (!licenseValid)
|
||||
{
|
||||
yield return new WaitForSeconds(QuitDelaySeconds);
|
||||
QuitApplication();
|
||||
yield break;
|
||||
}
|
||||
|
||||
ApplyLicensedStartupState();
|
||||
}
|
||||
|
||||
private bool ShouldSkipLicenseCheck()
|
||||
{
|
||||
if (Application.isEditor)
|
||||
{
|
||||
Debug.Log("[License] Unity Editor detected. License check skipped.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Debug.isDebugBuild)
|
||||
{
|
||||
Debug.Log("[License] Development build detected. License check skipped.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void ApplyLicensedStartupState()
|
||||
{
|
||||
Screen.fullScreenMode = FullScreenMode.ExclusiveFullScreen;
|
||||
Screen.SetResolution(1920, 1080, true);
|
||||
ClickCenter();
|
||||
}
|
||||
|
||||
private void QuitApplication()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
EditorApplication.isPlaying = false;
|
||||
#else
|
||||
Application.Quit();
|
||||
#endif
|
||||
}
|
||||
|
||||
private bool CheckLicense()
|
||||
{
|
||||
try
|
||||
{
|
||||
string launcherPath = FindLauncherPath();
|
||||
if (string.IsNullOrEmpty(launcherPath))
|
||||
{
|
||||
Debug.LogError("[License] RRLauncher.exe not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
STARTUPINFO startupInfo = new STARTUPINFO
|
||||
{
|
||||
cb = Marshal.SizeOf<STARTUPINFO>()
|
||||
};
|
||||
|
||||
bool success = CreateProcess(
|
||||
launcherPath,
|
||||
null,
|
||||
IntPtr.Zero,
|
||||
IntPtr.Zero,
|
||||
false,
|
||||
0,
|
||||
IntPtr.Zero,
|
||||
Path.GetDirectoryName(launcherPath),
|
||||
ref startupInfo,
|
||||
out PROCESS_INFORMATION processInfo);
|
||||
|
||||
if (!success) return false;
|
||||
|
||||
try
|
||||
{
|
||||
uint waitResult = WaitForSingleObject(processInfo.hProcess, (uint)(CheckTimeoutSeconds * 1000f));
|
||||
if (waitResult == WaitTimeout) return false;
|
||||
|
||||
if (!GetExitCodeProcess(processInfo.hProcess, out uint exitCode)) return false;
|
||||
|
||||
if (exitCode == 0)
|
||||
{
|
||||
ForceToFront();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CloseHandle(processInfo.hProcess);
|
||||
CloseHandle(processInfo.hThread);
|
||||
}
|
||||
}
|
||||
catch (Exception outerEx)
|
||||
{
|
||||
Debug.LogError($"[License] Critical error in CheckLicense: {outerEx.Message}");
|
||||
Debug.LogError($"[License] Stack trace: {outerEx.StackTrace}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static string FindLauncherPath()
|
||||
{
|
||||
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
string pathInBase = Path.Combine(baseDirectory, LauncherName);
|
||||
if (File.Exists(pathInBase)) return pathInBase;
|
||||
|
||||
string pathInStreamingAssets = Path.Combine(Application.streamingAssetsPath, LauncherName);
|
||||
if (File.Exists(pathInStreamingAssets)) return pathInStreamingAssets;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void ForceToFront()
|
||||
{
|
||||
IntPtr handle = GetActiveWindow();
|
||||
SetForegroundWindow(handle);
|
||||
}
|
||||
|
||||
private static void ClickCenter()
|
||||
{
|
||||
int screenWidth = Screen.currentResolution.width;
|
||||
int screenHeight = Screen.currentResolution.height;
|
||||
if (screenWidth <= 0 || screenHeight <= 0) return;
|
||||
|
||||
int absoluteX = (int)(screenWidth * 0.5f * 65535 / screenWidth);
|
||||
int absoluteY = (int)(screenHeight * 0.5f * 65535 / screenHeight);
|
||||
|
||||
INPUT[] inputs =
|
||||
{
|
||||
new INPUT
|
||||
{
|
||||
type = InputMouse,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dx = absoluteX,
|
||||
dy = absoluteY,
|
||||
dwFlags = MouseEventfMove | MouseEventfAbsolute
|
||||
}
|
||||
},
|
||||
new INPUT
|
||||
{
|
||||
type = InputMouse,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dwFlags = MouseEventfLeftDown
|
||||
}
|
||||
},
|
||||
new INPUT
|
||||
{
|
||||
type = InputMouse,
|
||||
mi = new MOUSEINPUT
|
||||
{
|
||||
dwFlags = MouseEventfLeftUp
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
SendInput((uint)inputs.Length, inputs, Marshal.SizeOf<INPUT>());
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct PROCESS_INFORMATION
|
||||
{
|
||||
public IntPtr hProcess;
|
||||
public IntPtr hThread;
|
||||
public int dwProcessId;
|
||||
public int dwThreadId;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||
private struct STARTUPINFO
|
||||
{
|
||||
public int cb;
|
||||
public string lpReserved;
|
||||
public string lpDesktop;
|
||||
public string lpTitle;
|
||||
public int dwX;
|
||||
public int dwY;
|
||||
public int dwXSize;
|
||||
public int dwYSize;
|
||||
public int dwXCountChars;
|
||||
public int dwYCountChars;
|
||||
public int dwFillAttribute;
|
||||
public int dwFlags;
|
||||
public short wShowWindow;
|
||||
public short cbReserved2;
|
||||
public IntPtr lpReserved2;
|
||||
public IntPtr hStdInput;
|
||||
public IntPtr hStdOutput;
|
||||
public IntPtr hStdError;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct INPUT
|
||||
{
|
||||
public uint type;
|
||||
public MOUSEINPUT mi;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct MOUSEINPUT
|
||||
{
|
||||
public int dx;
|
||||
public int dy;
|
||||
public uint mouseData;
|
||||
public uint dwFlags;
|
||||
public uint time;
|
||||
public IntPtr dwExtraInfo;
|
||||
}
|
||||
|
||||
private const uint InputMouse = 0;
|
||||
private const uint MouseEventfMove = 0x0001;
|
||||
private const uint MouseEventfAbsolute = 0x8000;
|
||||
private const uint MouseEventfLeftDown = 0x0002;
|
||||
private const uint MouseEventfLeftUp = 0x0004;
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
private static extern bool CreateProcess(
|
||||
string lpApplicationName,
|
||||
string lpCommandLine,
|
||||
IntPtr lpProcessAttributes,
|
||||
IntPtr lpThreadAttributes,
|
||||
bool bInheritHandles,
|
||||
uint dwCreationFlags,
|
||||
IntPtr lpEnvironment,
|
||||
string lpCurrentDirectory,
|
||||
ref STARTUPINFO lpStartupInfo,
|
||||
out PROCESS_INFORMATION lpProcessInformation);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern bool GetExitCodeProcess(IntPtr hProcess, out uint lpExitCode);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool SetForegroundWindow(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetActiveWindow();
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Managers/StartupLicenseManager.cs.meta
Normal file
11
Assets/Scripts/Managers/StartupLicenseManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c35b5d0979bb4ff8b1b62da9d44ebf25
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -65,6 +65,8 @@ MonoBehaviour:
|
||||
- rid: 1880696068032167936
|
||||
- rid: 1880696068032167937
|
||||
- rid: 1880696068032167938
|
||||
- rid: 4973897132540428288
|
||||
- rid: 4973897132540428289
|
||||
m_RuntimeSettings:
|
||||
m_List:
|
||||
- rid: 7752762179098771456
|
||||
@ -79,7 +81,9 @@ MonoBehaviour:
|
||||
- rid: 7752762179098771476
|
||||
- rid: 4931727606779215873
|
||||
- rid: 4931727606779215874
|
||||
m_AssetVersion: 9
|
||||
- rid: 1880696068032167937
|
||||
- rid: 4973897132540428289
|
||||
m_AssetVersion: 10
|
||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||
m_RenderingLayerNames:
|
||||
- Default
|
||||
@ -252,6 +256,18 @@ MonoBehaviour:
|
||||
data:
|
||||
m_Version: 1
|
||||
m_UseBicubicLightmapSampling: 0
|
||||
- rid: 4973897132540428288
|
||||
type: {class: URPTerrainShaderSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_IncludeTerrainShaders: 1
|
||||
- rid: 4973897132540428289
|
||||
type: {class: UniversalRenderPipelineRuntimeTerrainShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
|
||||
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
|
||||
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
|
||||
- rid: 7752762179098771456
|
||||
type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
@ -340,9 +356,9 @@ MonoBehaviour:
|
||||
m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||
m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
|
||||
m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
|
||||
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
|
||||
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
|
||||
m_TerrainDetailLit: {fileID: 0}
|
||||
m_TerrainDetailGrassBillboard: {fileID: 0}
|
||||
m_TerrainDetailGrass: {fileID: 0}
|
||||
- rid: 7752762179098771467
|
||||
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
|
||||
data:
|
||||
|
||||
@ -1,125 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 3
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 2
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots: []
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eab343b37579cb143a674154e9210b3f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,20 +1,20 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.github-glitchenzo.nugetforunity": "https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity",
|
||||
"com.unity.ai.inference": "2.5.0",
|
||||
"com.unity.ai.inference": "2.6.1",
|
||||
"com.unity.cinemachine": "3.1.5",
|
||||
"com.unity.collab-proxy": "2.11.3",
|
||||
"com.unity.collab-proxy": "2.12.4",
|
||||
"com.unity.feature.2d": "2.0.2",
|
||||
"com.unity.ide.rider": "3.0.39",
|
||||
"com.unity.ide.visualstudio": "2.0.26",
|
||||
"com.unity.inputsystem": "1.18.0",
|
||||
"com.unity.inputsystem": "1.19.0",
|
||||
"com.unity.multiplayer.center": "1.0.1",
|
||||
"com.unity.render-pipelines.universal": "17.3.0",
|
||||
"com.unity.test-framework": "1.6.0",
|
||||
"com.unity.timeline": "1.8.10",
|
||||
"com.unity.timeline": "1.8.12",
|
||||
"com.unity.ugui": "2.0.0",
|
||||
"com.unity.visualeffectgraph": "17.3.0",
|
||||
"com.unity.visualscripting": "1.9.9",
|
||||
"com.unity.visualscripting": "1.9.11",
|
||||
"com.unity.modules.accessibility": "1.0.0",
|
||||
"com.unity.modules.adaptiveperformance": "1.0.0",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
|
||||
@ -116,12 +116,12 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ai.inference": {
|
||||
"version": "2.5.0",
|
||||
"version": "2.6.1",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.burst": "1.8.17",
|
||||
"com.unity.dt.app-ui": "1.3.3",
|
||||
"com.unity.dt.app-ui": "1.3.6",
|
||||
"com.unity.collections": "2.4.3",
|
||||
"com.unity.nuget.newtonsoft-json": "3.2.1",
|
||||
"com.unity.modules.imageconversion": "1.0.0"
|
||||
@ -129,7 +129,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.burst": {
|
||||
"version": "1.8.27",
|
||||
"version": "1.8.29",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -149,21 +149,21 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.collab-proxy": {
|
||||
"version": "2.11.3",
|
||||
"version": "2.12.4",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.collections": {
|
||||
"version": "2.6.2",
|
||||
"version": "2.6.5",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.burst": "1.8.23",
|
||||
"com.unity.burst": "1.8.27",
|
||||
"com.unity.mathematics": "1.3.2",
|
||||
"com.unity.test-framework": "1.4.6",
|
||||
"com.unity.nuget.mono-cecil": "1.11.5",
|
||||
"com.unity.nuget.mono-cecil": "1.11.6",
|
||||
"com.unity.test-framework.performance": "3.0.3"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
@ -221,7 +221,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.inputsystem": {
|
||||
"version": "1.18.0",
|
||||
"version": "1.19.0",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -314,7 +314,7 @@
|
||||
}
|
||||
},
|
||||
"com.unity.splines": {
|
||||
"version": "2.8.2",
|
||||
"version": "2.8.4",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -335,7 +335,7 @@
|
||||
}
|
||||
},
|
||||
"com.unity.test-framework.performance": {
|
||||
"version": "3.2.0",
|
||||
"version": "3.4.0",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -345,7 +345,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.timeline": {
|
||||
"version": "1.8.10",
|
||||
"version": "1.8.12",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -375,7 +375,7 @@
|
||||
}
|
||||
},
|
||||
"com.unity.visualscripting": {
|
||||
"version": "1.9.9",
|
||||
"version": "1.9.11",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
|
||||
@ -116,6 +116,7 @@ PlayerSettings:
|
||||
xboxEnableGuest: 0
|
||||
xboxEnablePIXSampling: 0
|
||||
metalFramebufferOnly: 0
|
||||
metalUseMetalDisplayLink: 0
|
||||
xboxOneResolution: 0
|
||||
xboxOneSResolution: 0
|
||||
xboxOneXResolution: 3
|
||||
@ -600,7 +601,7 @@ PlayerSettings:
|
||||
webWasm2023: 0
|
||||
webEnableSubmoduleStrippingCompatibility: 0
|
||||
scriptingDefineSymbols:
|
||||
Standalone: APP_UI_EDITOR_ONLY
|
||||
Standalone: APP_UI_EDITOR_ONLY;SENTIS_ANALYTICS_ENABLED
|
||||
additionalCompilerArguments: {}
|
||||
platformArchitecture: {}
|
||||
scriptingBackend:
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
m_EditorVersion: 6000.3.8f1
|
||||
m_EditorVersionWithRevision: 6000.3.8f1 (1c7db571dde0)
|
||||
m_EditorVersion: 6000.3.14f1
|
||||
m_EditorVersionWithRevision: 6000.3.14f1 (d68c3f99a318)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user