コード例 #1
0
ファイル: EntityAction.cs プロジェクト: Enanyy/moon
    public virtual void SetAgent(BattleEntity entity)
    {
        agent = entity;
        if (agent == null || agent.param == null)
        {
            return;
        }

        param = agent.param.GetAction(type);
        if (param != null)
        {
            weight   = param.weight;
            duration = duration == 0 ? param.duration : duration;

            var plugins = param.GetParams <EntityParamPlugin>();
            for (int i = 0; i < plugins.Count; ++i)
            {
                try
                {
                    ActionPlugin plugin = ObjectPool.GetInstance <ActionPlugin>(plugins[i].plugin);
                    if (plugin != null)
                    {
                        plugin.Init(plugins[i]);
                        plugin.agent  = agent;
                        plugin.action = this;
                        AddSubState(plugin);
                    }
                }
                catch (Exception e)
                {
                    Debug.LogError(e.Message);
                }
            }
        }
    }