Process() public abstract method

Process the current tick for the module.

public abstract Process ( ) : void
return void
 static public int Process(IntPtr l)
 {
     try {
                     #if DEBUG
         var    method     = System.Reflection.MethodBase.GetCurrentMethod();
         string methodName = GetMethodName(method);
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.BeginSample(methodName);
                     #else
         Profiler.BeginSample(methodName);
                     #endif
                     #endif
         UnityEngine.EventSystems.BaseInputModule self = (UnityEngine.EventSystems.BaseInputModule)checkSelf(l);
         self.Process();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
             #if DEBUG
     finally {
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.EndSample();
                     #else
         Profiler.EndSample();
                     #endif
     }
             #endif
 }
Beispiel #2
0
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }
            TickModules();

            bool changedModule           = false;
            var  systemInputModulesCount = m_SystemInputModules.Count;

            for (var i = 0; i < systemInputModulesCount; i++)
            {
                var module = m_SystemInputModules[i];
                if (module.IsModuleSupported() && module.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != module)
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                    }
                    break;
                }
            }

            // no event module set... set the first valid one...
            if (m_CurrentInputModule == null)
            {
                for (var i = 0; i < systemInputModulesCount; i++)
                {
                    var module = m_SystemInputModules[i];
                    if (module.IsModuleSupported())
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                        break;
                    }
                }
            }

            if (!changedModule && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }

#if UNITY_EDITOR
            if (Application.isPlaying)
            {
                int eventSystemCount = m_EventSystems.Count;

                if (eventSystemCount > 1)
                {
                    Debug.LogWarning("There are " + eventSystemCount + " event systems in the scene. Please ensure there is always exactly one event system in the scene");
                }
            }
#endif
        }
 static public int Process(IntPtr l)
 {
     try {
         UnityEngine.EventSystems.BaseInputModule self = (UnityEngine.EventSystems.BaseInputModule)checkSelf(l);
         self.Process();
         return(0);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static int Process(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         UnityEngine.EventSystems.BaseInputModule obj = (UnityEngine.EventSystems.BaseInputModule)ToLua.CheckObject <UnityEngine.EventSystems.BaseInputModule>(L, 1);
         obj.Process();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
        // 每个渲染帧刷一次
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }
            TickModules();

            // 正常情况不用管,m_SystemInputModules在StandaloneInputModule OnEnable时会调用EventSystem.UpdateModules方法,会对m_SystemInputModules进行
            // 初始化,获取挂载的所有InputModules。
            bool changedModule = false;

            for (var i = 0; i < m_SystemInputModules.Count; i++)
            {
                var module = m_SystemInputModules[i];
                if (module.IsModuleSupported() && module.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != module)
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                    }
                    break;
                }
            }

            // no event module set... set the first valid one...
            if (m_CurrentInputModule == null)
            {
                for (var i = 0; i < m_SystemInputModules.Count; i++)
                {
                    var module = m_SystemInputModules[i];
                    if (module.IsModuleSupported())
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                        break;
                    }
                }
            }

            // 调用输入模块处理方法
            // 一般是standaloneInputModule,touchInputModule已被standaloneInputModule取代
            if (!changedModule && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }
        }
        /// <summary>
        /// UI事件监听入口
        /// </summary>
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }

            TickModules();

            bool changedModule = false;

            //根据用户使用什么设备输入来判断启用哪个输入模块
            for (var i = 0; i < m_SystemInputModules.Count; i++)
            {
                var module = m_SystemInputModules[i];
                if (module.IsModuleSupported() && module.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != module)
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                    }
                    break;
                }
            }

            // no event module set... set the first valid one...
            //如果当前没有输入模块,则选取第一个支持的输入模块
            if (m_CurrentInputModule == null)
            {
                for (var i = 0; i < m_SystemInputModules.Count; i++)
                {
                    var module = m_SystemInputModules[i];
                    if (module.IsModuleSupported())
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                        break;
                    }
                }
            }
            //如果当前帧没有改变输入模块则处理当前输入模块
            if (!changedModule && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }
        }
Beispiel #7
0
        //每帧更新
        //做三件事情:
        //    (1)在TickModules函数中遍历所有可用InputModule,并调用其UpdateModule方法
        //    (2)检查输入模块是否发生变化。遍历InputModule列表,找到第一个可用(被支持且被激活)的InputModule,设置m_CurrentInputModule
        //    (3)如果当前输入模块没发生变化,调用当前InputModule的Process处理函数
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }
            TickModules();

            bool changedModule = false;

            for (var i = 0; i < m_SystemInputModules.Count; i++)
            {
                var module = m_SystemInputModules[i];
                if (module.IsModuleSupported() && module.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != module)
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                    }
                    break;
                }
            }

            // no event module set... set the first valid one...
            //如果上面循环没有正确设置输入模块,那么选在第一个有效模块作为当前输入模块
            if (m_CurrentInputModule == null)
            {
                for (var i = 0; i < m_SystemInputModules.Count; i++)
                {
                    var module = m_SystemInputModules[i];
                    if (module.IsModuleSupported())
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                        break;
                    }
                }
            }

            // 输入模块没有发生变化
            if (!changedModule && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }
        }
Beispiel #8
0
        //事件系统的更新核心
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }
            TickModules(); // 更新各个输入模块的状态

            bool changedModule = false;

            for (var i = 0; i < m_SystemInputModules.Count; i++)
            {
                var module = m_SystemInputModules[i];
                //判断是否支持当前平台,且是否应该激活
                if (module.IsModuleSupported() && module.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != module)
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                    }
                    break;
                }
            }

            // no event module set... set the first valid one...
            if (m_CurrentInputModule == null)
            {
                for (var i = 0; i < m_SystemInputModules.Count; i++)
                {
                    var module = m_SystemInputModules[i];
                    if (module.IsModuleSupported())
                    {
                        ChangeEventModule(module);
                        changedModule = true;
                        break;
                    }
                }
            }

            if (!changedModule && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }
        }
Beispiel #9
0
        protected virtual void Update()
        {
            if (current != this)
            {
                return;
            }
            TickModules();
            bool flag = false;

            for (int i = 0; i < m_SystemInputModules.Count; i++)
            {
                BaseInputModule baseInputModule = m_SystemInputModules[i];
                if (baseInputModule.IsModuleSupported() && baseInputModule.ShouldActivateModule())
                {
                    if (m_CurrentInputModule != baseInputModule)
                    {
                        ChangeEventModule(baseInputModule);
                        flag = true;
                    }
                    break;
                }
            }
            if (m_CurrentInputModule == null)
            {
                for (int j = 0; j < m_SystemInputModules.Count; j++)
                {
                    BaseInputModule baseInputModule2 = m_SystemInputModules[j];
                    if (baseInputModule2.IsModuleSupported())
                    {
                        ChangeEventModule(baseInputModule2);
                        flag = true;
                        break;
                    }
                }
            }
            if (!flag && m_CurrentInputModule != null)
            {
                m_CurrentInputModule.Process();
            }
        }