private Queue<System.Action> actionQueue;
private Action OnLoginSuccess;
private Action<INError> OnLoginFailure;
void Awake () {
actionQueue = new Queue<System.Action>(1024);
}
void Start () {
OnLoginSuccess = LoginSuccess;
OnLoginFailure = LoginFailure;
}
public void GuestLogin(){
auth.Login((INSession session)=>
{
actionQueue.Enqueue(OnLoginSuccess);
},(INError error)=> {
// 弹出登录错误
actionQueue.Enqueue(OnLoginFailure (error)); //报错无法从“void”转换为 system.action
});
}
private void LoginSuccess(){}
private void LoginFailure(INError error){}
OnLoginSuccess没什么问题, 但是OnLoginFailure(error)报错无法从“void”转换为 system.action. 应该是参数的问题吧?
虽然不知道什么用意,但是 actionQueue<Action> 指定的是Action,Enqueue进去的也一定是 Action类型的才对,要么 OnLoginFail 返回Action,要么 ()=>OnLoginFail (error) ,