Во-первых: прочитайте эту статью . Android Java Прокси может реализовывать только интерфейсы. Поэтому вы должны создать интерфейс в java. Что-то вроде:
public interface IAttachable
{
public void onAttached(Sdk sdk);
}
В своем классе AttachCallback вы добавляете этот интерфейс, например:
public abstract class AttachCallback implements IAttachable {
public IAttachable unityCallback;
public void onAttached(String sdk)
{
unityCallback.onAttached(sdk);
}
}
Затем в своем классе Unity создайте JavaProxy
public class AttachCallback : AndroidJavaProxy
{
public AttachCallback() : base("com.example.IAttachable")
{
}
public void onAttached(AndroidJavaObject sdk)
{
Debug.Log("-----Attached------");
}
}
Для присоединения Для прокси Unity вы должны передать AttachCallback на java, что-то вроде:
public void AddAttachToJava()
{
AttachCallback callback = new AttachCallback();
//Passing to activity, but you can do whatever you want
using (AndroidJavaClass javaClass = new AndroidJavaClass("your activity class name"))
{
using (AndroidJavaObject activity = javaClass.GetStatic<AndroidJavaObject>("mContext"))
{
activity.Call("attachUnityCallback", callback);
}
}
}
Ваш метод java в действии должен выглядеть следующим образом:
public void attachUnityCallback(IAttachable attachable)
{
// if AttachCallback is created
attachCallback.unityCallback = attachable;
attachCallback.onAttached(sdk);
}