private static TestTreeNode BuildNamespaceNode(TestComponentData testData,
                                                       TestTreeNode parent, TreeBuilderOptions options)
        {
            var @namespace = testData.CodeReference.NamespaceName;

            if (string.IsNullOrEmpty(@namespace))
            {
                return(parent);
            }

            if (options.NamespaceHierarchy == NamespaceHierarchy.Flat)
            {
                parent = FindOrAddNamespaceNode(parent, @namespace, @namespace);
                return(parent);
            }

            var namespaces = @namespace.Split('.');

            foreach (var namespaceSegment in namespaces)
            {
                if (namespaceSegment.Length == 0)
                {
                    continue;
                }

                parent = FindOrAddNamespaceNode(parent, @namespace, namespaceSegment);
            }

            return(parent);
        }
Example #2
0
        public static void AreEqual(TestComponentData expected, TestComponentData actual)
        {
            if (expected == null)
            {
                Assert.IsNull(actual);
                return;
            }

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.Name, actual.Name);
            Assert.AreEqual(expected.CodeReference, actual.CodeReference);
            Assert.AreEqual(expected.CodeLocation, actual.CodeLocation);

            AreEqual(expected.Metadata, actual.Metadata);
        }
Example #3
0
    /// <summary>
    /// 通过EntityManager获取和保存组件的值,这些方法不是很推荐,如在系统中应使用另一套方法
    /// </summary>
    /// <param name="e"></param>
    public void GetAndSet(Entity e)
    {
        //获取普通组件,SystemState组件同理
        TestComponentData data1 = EntityManager.GetComponentData <TestComponentData>(e);

        data1.Value += 1;
        //保存组件数据的修改,同理这里的泛型可省略
        EntityManager.SetComponentData <TestComponentData>(e, data1);
        //获取共享组件
        TestSharedComponentData data2 = EntityManager.GetSharedComponentData <TestSharedComponentData>(e);

        data2.Value += 1;
        //保存组件数据的修改,注意这里只会使该entity对应另外一个共享组件,而不会修改entity对应共享组件的值
        EntityManager.SetSharedComponentData(e, data2);

        //获取Buffer组件,修改不需要调用函数保存,会直接保存
        DynamicBuffer <TestBufferElementData> data3 = EntityManager.GetBuffer <TestBufferElementData>(e);
        //修改方式已经介绍过了,就不再介绍了

        //获取ComponentObject组件
        TestClass data4 = EntityManager.GetComponentObject <TestClass>(e);

        data4.Value += 1;//ComponentObject和Buffer一样是自动保存的
    }
 private static bool FixtureNode(TestComponentData testData)
 {
     return(testData.CodeReference.MemberName == null && testData.CodeReference.NamespaceName != null);
 }