- Видео 2
- Просмотров 7 591
NorskaLearn
Россия
Добавлен 22 авг 2021
Sharing game development experience :)
DATABASE IN UNITY | SCRIPTABLE OBJECT + GOOGLE SHEETS | Package Update
This is a Unity Editor tool, which helps design game-logic database (such as characters, weapons, items stats etc.) using Google Spreadsheets.
The package has been updated: it now have an export to .json/.bin support as well as few naming and hierarchy changes.
📌Download package on GitHub: github.com/NorskaGames/NorskaLib.Spreadsheets 📌
The package has been updated: it now have an export to .json/.bin support as well as few naming and hierarchy changes.
📌Download package on GitHub: github.com/NorskaGames/NorskaLib.Spreadsheets 📌
Просмотров: 1 468
Видео
DATABASE IN UNITY | SCRIPTABLE OBJECT + GOOGLE SHEETS | Package Overview
Просмотров 6 тыс.2 года назад
This is a Unity Editor tool, which helps design game-logic database (such as characters, weapons, items stats etc.) using Google Spreadsheets. 📌Download package on GitHub: github.com/NorskaGames/NorskaLib.Spreadsheets 📌 Assets used: assetstore.unity.com/packages/3d/characters/humanoids/fantasy/toon-rts-units-undead-demo-95640 assetstore.unity.com/packages/3d/characters/toon-rts-units-demo-69687...
It seems to work, but after closing and opening unity again, the scriptable object fails; no longer allowing inspection. Only uninstalling and reinstalling the package fixes it, and that only delays the failure until the next reset.
Such a great tool man, great work! It's proving useful for me, but there's one key thing I was hoping you'd add. The ability for users to specify the fields they want to read from using a string?
"SCRIPTABLE OBJECT + GOOGLE SHEETS" ? Strange connection. The ScriptableObject itself usually acts as the primary immutable data container. If we parse this data externally, then it is better to pass it directly to the target serializable class.
There was an update similar to what you described. In a modern version of the package spreadsheet content is serialized as a separate object which you can write to .bin/.json file to use elsewhere.
Привет, интересное решение. Я разрабатывал нечто похожее для локализации, однако ещё добавил возможность обратно отправлять изменения в Google Sheets
Hi, im getting the error "Library\PackageCache\com.norska-lib.spreadsheets@bf43763b16\Editor\SpreadsheetSerializer.cs(29,24): error CS0117: 'File' does not contain a definition for 'WriteAllTextAsync'". How do i fix this?
It seems like your compiler expects .NET version different from that I used. Try go Project Settings -> Player -> Other Settings -> Configuration -> API Compatibility level and set it to ".NET Framework"
Very interesting tutorial! I just have a doubt, can you import that database from code? Or you can only do it with the Import button
This is a Editor-only feature, since you would like to obscure both data and the original spreadsheet web-address in a shipped game. It's not designed to be a runtime/live-ops tool. If you are looking for a service to manage your configs/settings in an already installed game I can recommend balancy.co
thx! I will look into it!
I would like to ask you to upload the code files and edit the old video where the code is replaced.
😅 Yeah sorry, I pasted wrong github link :)
First of all, congratulations, nice work. I am in a project and can you guide me. I'm going to start making a quote and product tracking application in Unity and I want to print it in webGL and add it to my own website. I assume that I pull the data. How can I change this data in play mode. (the price of the pen is 5, when I make it 3, it will also change in the google exel table, stock change etc). I would appreciate your guidance. I wish you continued success.
Hi, thanks for feedback! Unfortunately, this package is designed to be one-way (from GoogleSheets to UnityEditor), not vice versa, and I have no plans on adding such functionality.
You made a wonderful tool, but this video is already outdated regarding the tool. Newbies won't be able to figure it out.
I've been using this tool on a project and I wonder if there's an easy way to call the import method from within the code instead of using the button on the inspector. Thanks!
Hi, glad you found it useful 😀 If you are trying to call it at runtime - it is not supposed to be used this way. Link to the spreadsheet is designed to not be included in build as it can compromise your personal/corporate data.
@@norskalearn I found it very useful as well, thanks! I would also like to execute it in runtime. Is there a way to execute the import call in with a button in-game?
Thank you for the video and the materials! It really helped me. I ran in to the problem of not having Xcode installed so installing the package from git wasn't working for me in the beginning... Then I installed home brew and it worked smoothly.
Hi, I', glad I did something useful! Check the updated version of the package (I added json/binary export functionality) github.com/NorskaGames/NorskaLib.Spreadsheets
Oh my god! this what i looking for😍 Thankyou Sir, Subscribed and have an Amazing Days🏝🌟
Hello, Works on Android? Thanks
Hello, why shouldn't it work on Android? Once data is parsed into a ScriptableObject it gets serialized in the build same way as any other ScriptableObject in your project.
How can I edit value in google sheet? Because I just can read from gg sheet or add new rowline by form!
This is asset is meant only for parsing data FROM Google Sheets TO Unity scriptable object, not vice versa.
Is it useful for multiplayer games?
It is useful for any type of games as it is simply a container for parsing and accessing settings/configs you store in a spreadsheet.
I have been working with this on and off for about a month and I can't figure out how to call data points in my google sheets and store them as variables in my code. Is this possible or is that not the function this package is designed for?
Hi! Sorry, I don't quite understand your problem. Can you e-mail norskagames@gmail.com and specify the problem?
A great addition to this would be the ability to only import the changes, rather than re-importing the whole sheet every single time. I am not too familiar with the functionality of google sheets, so I'm not entirely sure how this could be implemented elegantly. Maybe something like adding a special character such as "$" at the start of each cell that has been altered, which the parser uses to determine what data needs to be changed/added, coupled with a SendWebRequest() function to notify the sheet to remove those characters once the parsing is complete?
I mean, you can toggle the pages you don't want to (re)import but to mark every cell for update... don't worth the bother I would say.
is it possible to save data to google sheets via unity?
Hi! No, this package does not support such function. I would also suggest using some tools like Firebase to store user data instead of GoogleSpreadsheet.
There are two ways. 1. Use Google packages -> Google Sheet API 2. Make a google form to write to the google sheet, use Unity's network to fill the the google form
Hi! This was a great tutorial! I could not seem to find the code for your Unit.cs though. Could you please provide that to me? Thanks!
Hi, nice to hear you liked it 🙂 In this tutorial Unit.cs is a boilerplate class. It has no logic but Initialize(UnitData data...) method which simply copies UnitData.Health to it's own variable Unit.health.
@@norskalearn Thank you so much!
I love this tutorial and is exactly what I am looking for. Is there any way to set up multiple data containers to hold different sets of data to keep organized? I have a lot of data points I am trying to import.
Hi, glad you liked it 😀 The only limitation of the package is that 1 container instance can target only 1 spreadsheet url. If you want to target multiple spreadsheets or 'split' spreadsheet into multiple scriptable objects you need to create several classes that inherit DataContainerBase.
great i love this
Thank you!
This is a great package! Would it be possible to import at runtime? If so, could you tell me how?
Hi! The script is running in Editor only and is not supposed to be run at application runtime :( While developing this tool I've seen some solutions that allow you to parse a spreadsheet at runtime, but from my own developer experience I find it a malpractice: 1. If you want to tune balance, I think you should release new patches/versions of your game. Otherwise gamers with the same game version may have different databases, if they didn't receive an update; 2. You don't want hackers to know web-address of your spreadsheet, so it shouldn't be included in build.
im getting an error: No 'git' executable was found. Please install Git on your system then restart Unity and Unity Hub [NotFound].
is there any other methods to add this package? I really need it
Given error literally means you don't have source control system (git) installed, which is possible if you never used GitHub or similar services. So you can't install not only this, but any package from git. You can use link below to download and install git: Такая ошибка означает, что у тебя на устройстве не установлена система контроля версий (git), что бывает, если ты никогда не пользовался GitHub'ом или похожими сервисами. Без гита ты не сможешь установить не только этот пакет, но и вообще любой пакет таким образом. Так что рекомендую установить и с оф. сайта: git-scm.com/downloads
@@egorshutov5829 as an option you can download the repo as a .zip archive from git, unpack it and then use "Add from disk" instead of "Add from git". Как вариант, можно скачать репозиторий в виде .zip архива с гита, распаковать его и добавить в проект через пункт меню "Add from disk" вместо "Add from git".
@@norskalearn И снова привет, как я понял ты из России? Во первых ОГРОМНОЕ спасибо за видео, это и правда кажется самым легким и удобным способом добавления бд на просторе интернета. Однако у меня возникают определенные проблемы. Я смог все таки добавить себе этот package(спасибо твоим комментариям), однако теперь я не могу понять как использовать эту бд и как получать из нее информацию. Я старался делать все так, как ты делаешь в разделе видео "usage examples", но у меня ничего не выходит. Может есть еще какие то примеры или гайды как получить информацию из DataContainer
@@egorshutov5829 Да, я из России. Спасибо за отзыв, мне приятно, что я смог сделать полезный опен-сорс) Что касается твоего вопроса, мне сложно добавить что-либо к примерам, изложенным в блоке Usage Examples. Да, они достаточно общие, поэтому предлагаю тебе написать на почту norskagames@gmail.com и более детально изложить проблему с примерами кода. Я постараюсь подсказать какое-нибудь решение.
Will this idea work for vrchat?
or any type of vr game?
Hi, it sure will. There is no limit to a type of game or platform, since spreadsheets are parsed to a native unity scriptable object.
@@norskalearn Aighty cool
@@norskalearn also you think I can learn more from you when it comes to vr because I wanna try to make a card game
Thanks a lot. I am wondering about that. I have one question, Can be possible If I want Datacontainer import function put into the button in Project? Like Update Button
Hi! Unfortunately, it can't be done, since the script is running in Editor only and is not supposed to be run at application runtime :( While developing this tool I've seen some solutions that allow you to parse a spreadsheet at runtime, but from my own developer experience I would say that by doing so you would overcomplicate things.
Wow it fast and easy solution for db, thx
Glad you found it useful!
The best!😍 thank u really!!!
Great tutorial! I’ve been searching for good package a long time. Thanks a lot👏☺️
Thank you!
👏🏻👏🏻👏🏻