首页 > 解决方案 > 如何在统一 c# 脚本和 android 活动之间正确通信?

问题描述

整个系统对我来说不是很清楚。假设我想在单击按钮时创建一个 toast。我怎么做?我知道 AndroidJavaClass,但在这种情况下,我需要 toast 的活动。我不能用扩展的 UnityPlayerActivity 制作一个罐子,或者我可以吗?(我也知道统一创建吐司的方法,这个问题不是那个)

实际上,我想实现 firebase 身份验证。为此,我需要获取用户的电子邮件和密码。当然,我可以很容易地统一创建一个场景,但我需要调用一个只能在活动中实现的 createAccount 方法(因为我们需要上下文)

另外我真的不想创建一个插件,因为我不能回调统一,或者我可以吗?

实际上,我想要的方式似乎只会制作意大利面。如果有人了解我的问题并知道更好的解决方案,请提供帮助。

firebase 的 createAccount 方法:

mAuth.createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI(user);
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.getException());
                Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            }

            // ...
        }
    });

标签: c#androidunity3d

解决方案


我真的建议您使用 Firebase Unity SDK,而不是尝试自己实现所有内容。有关如何使用 SDK 进行身份验证的信息,请参阅此处:Unity 中的 Firebase 身份验证入门

这更容易,已经过实战测试,然后您也可以立即获得多平台支持。

另外我真的不想创建一个插件,因为我不能回调统一,或者我可以吗?

如果您真的想构建自己的本机插件来执行此操作:是的,您可以很容易地从本机代码与 C# 通信。请参阅此页面上有关“UnitySendMessage”的示例 3:Unity - 手册:JAR 插件


推荐阅读