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); }
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); }
/// <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); }