带返回值委托的使用
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
/// <summary> 控台操作枚举 </summary>
public enum KtEv
{
/// <summary>
/// 控台币值键 :传入币值 1 2 5 10 25 100 200
/// </summary>
m_DenomBtn,
/// <summary> 退出后台 要处理的事情 </summary>
OutBackGround,
}
public class TestFunc : MonoBehaviour
{
private static Dictionary<KtEv, Func<object[], object[]>> KtDict = new Dictionary<KtEv, Func<object[], object[]>>();
private static Func<object[], object[]> tmFunc;
public static void AddKtWord(KtEv code,Func<object[], object[]> funcCallBack)
{
KtDict.Add(code,funcCallBack);
}
/// <summary> 返回 obj[] </summary>
public static object[] G_Kt(KtEv code,params object[] inObj)
{
KtDict.TryGetValue(code, out tmFunc);
if (tmFunc==null) { Debug.Log("没有注册这个回调"); }
return tmFunc(inObj);
}
//Obj传输 工具-------------
public static object[] shaderObj;
public static object[] ToObj(params object[] obj)
{
shaderObj = obj;
return shaderObj;
}
private StringBuilder stb = new StringBuilder();
private void Start()
{
AddKtWord(KtEv.m_DenomBtn, delegate(object[] inDatas)
{
stb.Remove(0, stb.Length);
for (int i = 0; i < inDatas.Length; i++)
{
stb.Append(inDatas[i].ToString());
}
return ToObj(stb.ToString());
});
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//object tmobj = G_Kt(KtEv.m_DenomBtn, ToObj(1, 2, 3, 5, 10));
Debug.Log(G_Kt(KtEv.m_DenomBtn, ToObj(1, 2, 3, 5, 10))[0].ToString());
}
}
}