C# 无法将void转换为int
我正在为unity制作我的第一个Android插件,我遇到了一个无法解决的问题。现在,这个插件非常简单。它返回的是一个不断增加的数字,但方法是在原生Android文件中创建的。然后我从Unity内部调用此方法,以看到数字上升 这是我的密码。Android Java文件:C# 无法将void转换为int,c#,java,android,unity3d,C#,Java,Android,Unity3d,我正在为unity制作我的第一个Android插件,我遇到了一个无法解决的问题。现在,这个插件非常简单。它返回的是一个不断增加的数字,但方法是在原生Android文件中创建的。然后我从Unity内部调用此方法,以看到数字上升 这是我的密码。Android Java文件: package com.test.app; import com.unity3d.player.UnityPlayerActivity; import android.content.Context; import andro
package com.test.app;
import com.unity3d.player.UnityPlayerActivity;
import android.content.Context;
import android.os.Bundle;
import android.util.Config;
import android.util.Log;
public class PluginTest extends UnityPlayerActivity
{
private static final String TAG = "PluginTest_Unity";
private static int number = 0;
@Override
protected void onCreate(Bundle myBundle)
{
super.onCreate(myBundle);
}
@Override
protected void onResume()
{
if(Config.DEBUG)
{
Log.d(TAG, "onResume");
}
super.onResume();
}
@Override
protected void onPause()
{
super.onPause();
}
@Override
protected void onStop()
{
if(Config.DEBUG)
{
Log.d(TAG, "onStop");
}
super.onStop();
}
public static int getNumber()
{
number++;
return number;
}
}
我的统一C#文件:
using UnityEngine;
using System.Collections;
public class NumberExample : MonoBehaviour
{
public GUIText number_output_text;
AndroidJavaClass pluginTutorialActivityJavaClass;
// Use this for initialization
void Start ()
{
AndroidJNI.AttachCurrentThread();
pluginTutorialActivityJavaClass = new AndroidJavaClass("com.test.app.PluginTest");
}
// Update is called once per frame
void Update ()
{
int number = pluginTutorialActivityJavaClass.CallStatic("getNumber");
number_output_text.text = "nr: " + number;
}
}
但是,当我尝试在Unity中构建程序时,它抱怨我无法使用以下行将void转换为int:
int number = pluginTutorialActivityJavaClass.CallStatic("getNumber");
有人能看到我需要对代码进行的更改吗?来自:
要使用非void返回类型调用静态方法,请使用泛型
版本
//创建java.lang.String对象,并调用静态方法valueOf(float value)。
函数Start(){
var jo=新的AndroidJavaObject(“java.lang.String”);
var valueString=jo.CallStatic(“valueOf”,42.f);
}
你也许应该打电话
int number = pluginTutorialActivityJavaClass.CallStatic<int>("getNumber");
int number=pluginTutorialActivityJavaClass.CallStatic(“getNumber”);
Callstatic无效。查看文档:您是否想要GetStatic
?用这个ctrl-c ctrl-v:-)以毫秒的速度击败我
int number = pluginTutorialActivityJavaClass.CallStatic<int>("getNumber");