我是Unity的新手。我在Eclipse中有一个Android项目,在包Test
中有一个Java类com.mytestcode
。在Test中有一个嵌套的类Test.login
,其中login
是一个定义为enum login {APP, WEB, APP_WEB}
的枚举。在Eclipse中,我可以运行得很好;
package com.mytestcode;
import com.mytestcode.Test;
...
public testMethod(Test.login abc)
{
if(Test.login.APP == abc){
// do something
}
}
来到Unity,我遇到了这些错误
AndroidJavaClass test = new AndroidJavaClass("com.mytestcode.Test"); //work fine
AndroidJavaClass test2 = new AndroidJavaClass("com.mytestcode.Test.login"); //return ClassNotFound error
AndroidJavaObject test3 = new AndroidJavaClass("com.mytestcode.Test.login"); //return NoSuchFieldError error
AndroidJavaObject test4 = test.GetStatic<AndroidJavaObject>("login.APP"); //return NoSuchFieldError error
AndroidJavObject test5 = test.GetStatic<AndroidJavaObject>("Test.login.APP") //return NoSuchFieldError error
如何访问枚举Test.login中的值?
谢谢。
答案 0 :(得分:1)
试试这个
AndroidJavaClass ajc= new AndroidJavaClass("com.mytestcode.Test$login");
AndroidJavaObject ajo = ajc.GetStatic<AndroidJavaObject>("APP");
答案 1 :(得分:0)
我的第一个想法是,枚举不能直接兑换..来测试这个:
//create a new enum in its own class and test
AndroidJavaClass test6 = new AndroidJavaClass("com.mytestcode.Login");
AndroidJavObject test7 = test6.GetStatic<AndroidJavaObject>("Login.APP");
我也开始在java-android上大量使用枚举来保存大量数据,当我转到c#-unity时,我意识到c#并没有提供枚举 - &#34; class-type&#34 ;
所以我建议将你的枚举转换为int,直到你直接在c#
上开始一个新项目