Unity / C# - 是否可以通过EnityFramework将Azure(云)数据库连接到Unity游戏?

时间:2017-01-16 23:13:36

标签: c# mysql entity-framework azure unity3d

我有一个需要云数据库的Unity游戏。 (您可以从游戏内部连接到数据库。)

它不需要任何疯狂的事情。主要是阅读和阅读在表格中编写简单的列,也许只是简单的登录。

使用实体框架在Unity中可以做到这一点吗?

如果没有,是否有任何解决方法? (例如,使用MySQL)

请告诉我。

谢谢, 畚箕

3 个答案:

答案 0 :(得分:1)

以下是使用Firebase的解决方法。基本步骤是:

  • Firebase Unity SDK添加到项目中。
  • Firebase console中创建Firebase项目。
  • 从Firebase控制台下载配置文件。 Unity3D的文件可能是以下文件中的一个或两个:GoogleService-Info.plist(适用于iOS),Google-services.json(适用于Android)

然后您可以使用简单的代码段访问数据操作,如下所示:

using Firebase;
using Firebase.Unity.Editor;

public class MyScript: MonoBehaviour {
  void Start() {
    // Set this before calling into the realtime database.
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://xyz.firebaseio.com/");
    // Get the root reference location of the database.
    DatabaseReference reference = FirebaseDatabase.DefaultInstance.RootReference;
  }
}

例如,数据将采用以下形式。 enter image description here

将数据写入db:

private void writeNewUser(string userId, string name, string email) {
    User user = new User(name, email);
    string json = JsonUtility.ToJson(user);

    reference.Child("users").Child(userId).SetRawJsonValueAsync(json);
}

阅读数据:

reference.GetReference("users")
         .GetValueAsync().ContinueWith(task => {
             if (task.IsFaulted) {

             }
             else if (task.IsCompleted) {          
               // Do something with snapshot...
             }
  });

甚至很酷的是Firebase支持用户身份验证(即登录)等等,这对Unity3D开发人员来说非常方便。

关于如何将Unity3D与Firebase关联的教程是here,虽然它没有使用Firebase数据库,但Firebase消息传递作为示例,它可能对您有所帮助。

答案 1 :(得分:1)

感谢您的回答,是的,如果您需要实时/实时数据,Firebase是一个优秀的解决方案。 (比如多人在线游戏中的玩家位置)

然而,如果您只需要一个简单的东西,那就有更好的(免费)方法。 (比如保存玩家的高分并显示)

(至少那是我真正需要的,所以这就是我所做的)

步骤1)创建数据库(Azure或其他)

步骤2)制作网站/应用,托管并连接您的数据库。

步骤3)向您的应用添加API“端点”。 (与您的数据库交互)

步骤4)使用Unity的“ WWW ”类与您的终端进行互动(制作RESTful GET / POST)。

就是这样! 对我来说就像一个CHARM! (也很快!)

答案 2 :(得分:0)

Firebase开发人员。感谢插件大卫。

您可以找到更多文档,包括使用Firebase实时数据库和Unity here

的指南