public void Update()
        {
            int _len = functionList.Count;

            for (int i = 0; i < _len;)
            {
                DelayCallFun _dc = functionList[i];
                if (_dc.callTime <= Time.realtimeSinceStartup)
                {
                    _dc.fun(_dc.param);
                    functionList.RemoveAt(i);
                    _len--;
                }
                else
                {
                    i++;
                }
            }
        }
        public void CallFunction(MyEventHandler handler, float _time, params object[] objs)
        {
            DelayCallFun dc = new DelayCallFun();

            dc.callTime = Time.realtimeSinceStartup + _time;
            dc.fun      = handler;
            dc.param    = objs;
            int _len = functionList.Count;

            for (int i = 0; i < _len; i++)
            {
                DelayCallFun _dc = functionList[i];
                if (_dc.callTime > dc.callTime)
                {
                    functionList.Insert(i, dc);
                    return;
                }
            }
            functionList.Add(dc);
        }