Ejemplo n.º 1
0
    public static void FindPath(int _starTileX, int _starTileY,
                                int _endTileX, int _endTileY,
                                CEPathFindBasic _findEngine,
                                Action <CEPathFindResult> _finishCallback)
    {
        if (mInstance == null)
        {
            Debug.LogError("you should attack CEPathFind to an gameobject and call FindPath after it have been init");
        }
        else
        {
            var agentProxy = new CEPathFindAgentProxy();
            agentProxy.agent = new CEPathFindAgent();
            agentProxy.agent.Reset(_findEngine, _starTileX, _starTileY, _endTileX, _endTileY);
            agentProxy.callback += _finishCallback;

            mInstance.AddAgentProxy(agentProxy);
        }
    }
Ejemplo n.º 2
0
        /// <summary>
        /// 异步搜索,需要等待回调
        /// </summary>
        public static void FindPathAsync(int _starTileX, int _starTileY,
                                         int _endTileX, int _endTileY,
                                         CEPathFindMapAgent _findEngine,
                                         Action <CEPathFindResult> _finishCallback)
        {
            if (mInstance == null)
            {
                mHoldGo = new GameObject("CEPathFind");
                DontDestroyOnLoad(mHoldGo);
                mInstance = mHoldGo.AddComponent <CEPathFind>();
            }

            var agentProxy = new CEPathFindAgentProxy {
                agent = new CEPathFindAgent()
            };

            agentProxy.agent.Reset(_findEngine, _starTileX, _starTileY, _endTileX, _endTileY);
            agentProxy.callback = _finishCallback;

            mInstance.AddAgentProxy(agentProxy);
        }
Ejemplo n.º 3
0
 private void AddAgentProxy(CEPathFindAgentProxy _proxy)
 {
     mAllAgentProxyList.Add(_proxy);
 }