Our game currently doesn't save any state, but until now we haven't needed it. The player's location was directly accessed from their device's GPS, and the monsters around them were spawned by our makeshift monster service. However, we want our players to hunt down, catch, and collect monsters or other items as part of the game. In order to do this, we need to provide persistent storage in the form of a database. Otherwise, when the player turned off the game, all their collected items would be gone. Games running on a mobile device are particularly susceptible to getting shut down or crashing inadvertently, which means we need a robust storage solution.
If you do a search on the Unity Asset store for database, you will see plenty of free and paid options. Yet, we will use an open source alternative from GitHub called SQLite4Unity3d available at https://github.com/codecoding/SQLite4Unity3d. This package is an excellent wrapper for SQLite, a great cross-platform relational database. In fact, there are many different versions of SQLite database wrappers available on the Asset store. What puts this software above the others are a few reasons listed here:
UnityList at http://unitylist.com is a great search engine for more open source projects related to Unity.
SQLite community page is available at https://sqlite.org/.
Now that we have the background out of the way, let's get our hands dirty by loading the database wrapper and other code that we need. Fortunately, the database wrapper and code are all packaged in a single-asset import. Perform the following to import the asset package:
Catch
scene loaded. If you have jumped ahead to this chapter, load the project from the downloaded source folder: Chapter_6_Start
.Chapter_5_Assets
and select the Chapter5_import1.unitypackage
file. Then, click on Open to import the file.Assets/FoodyGo/Plugins/x64
folder. Inside the folder, select the sqlite3
plugin. Then, in the Inspector window, confirm that the plugin is configured to deploy to your device. The following is a screenshot shows an example for Android, but it would be the same even for iOS:
Sqlite3 import settings for Android
Importing the package and setting up the plugins were fairly straightforward. We will test whether everything is configured correctly in the next section.
3.14.6.194