示例#1
0
 public void ProcessingGroupWithZeroConcurrencyDoesNotAcceptPriority()
 {
     using (var processingGroup = new ProcessingGroup("test", new ProcessingGroupInfo()))
     {
         Assert.That(() => processingGroup.Subscribe(MockRepository.GenerateMock <IMessagingSession>(), "dest", (message, action) => { }, null, 1), Throws.TypeOf <InvalidSubscriptionException>());
     }
 }
示例#2
0
    public override void ProcessingGroup(ProcessingGroup group)
    {
        var rule = rules.Find(x => x.key == group.name);

        if (rule != null)
        {
            foreach (var processingItem in group.processingItems)
            {
                var go = processingItem.item;
                if (go == null)
                {
                    Debug.LogWarningFormat("忽略:{0}", processingItem.path);
                    continue;
                }

                var flags = GameObjectUtility.GetStaticEditorFlags(go);
                flags |= UnityEditor.StaticEditorFlags.NavigationStatic;
                GameObjectUtility.SetStaticEditorFlags(go, flags);
                GameObjectUtility.SetNavMeshArea(go, (int)rule.area);
                Debug.LogFormat(go, "设置{0}的NaviMeshArea为{1}", go.name, rule.area);
            }
            Debug.LogFormat("成功处理{0},共{1}个对象", group.name, group.processingItems.Count);
        }
        else
        {
            Debug.LogFormat("未找到{0}对就的规则,无法处理", group.name);
        }
    }
    public override void ProcessingGroup(ProcessingGroup group)
    {
        var rule = rules.Find(x => x.key == group.name);

        if (rule == null)
        {
            Debug.LogError("缺少绑定规则:" + group.name);
        }
        else
        {
            foreach (var processingItem in group.processingItems)
            {
                if (processingItem.item != null)
                {
                    var script = processingItem.item.GetComponent(rule.script.GetClass());
                    if (script == null)
                    {
                        processingItem.item.AddComponent(rule.script.GetClass());
                        Debug.LogFormat("在物体{0}上添加一个脚本:{1}", processingItem.item, rule.script);
                    }
                    else
                    {
                        Debug.LogFormat("物体{0}上已经存在脚本:{1}", processingItem.item, rule.script);
                    }
                }
            }
        }
    }
示例#4
0
 public override void ProcessingGroup(ProcessingGroup group)
 {
     foreach (var item in group.processingItems)
     {
         if (group.name == activeKey)
         {
             item.item.SetActive(true);
         }
         else if (group.name == disableKey)
         {
             item.item.SetActive(false);
         }
     }
 }
    public override void ProcessingGroup(ProcessingGroup group)
    {
        var rule = rules.Find(x => x.matchKey == group.name);

        if (rule != null)
        {
            var items = CollectItems(group.processingItems);
            foreach (var item in items)
            {
                item.layer = LayerMask.NameToLayer(rule.layer);
                Debug.LogFormat(item, "设置{0}的层级为{1}", item.name, rule.layer);
            }
            Debug.LogFormat("成功处理{0},共{1}个对象", group.name, group.processingItems.Count);
        }
        else
        {
            Debug.LogWarningFormat("未找到规则文件,请配制:{0}", group.name);
        }
    }
    public override void ProcessingGroup(ProcessingGroup processingGroup)
    {
        var rule = rules.Find(x => x.matchKey == processingGroup.name);
        if (rule != null)
        {
            foreach (var processingItem in processingGroup.processingItems)
            {
                ChargeRule(rule, processingItem);
            }
            Debug.LogFormat("成功处理{0},共{1}个对象", processingGroup.name, processingGroup.processingItems.Count);
        }
        else
        {
            Debug.LogWarningFormat("未找到规则文件,请配制:{0}", processingGroup.name);
        }
#if UNITY_EDITOR
        UnityEditor.EditorUtility.SetDirty(this);
#endif
    }