public void OnComponentAddedToEntity <TComponent>(object sender, Entity entity, TComponent component) { Type componentType = typeof(TComponent); if (_componentWrapperMap.ContainsKey(componentType)) { if (componentsToDelete.ContainsKey(componentType)) { componentsToDelete.Remove(componentType); } return; } Type componentWrapperType = componentType.Assembly.GetTypes() .Where(field => field.BaseType != null && field.BaseType.GetGenericArguments().Where(genericArgType => genericArgType == componentType).Any()) .FirstOrDefault(); if (componentWrapperType != null) { #if !UNITY_EDITOR if (componentWrapperType.GetCustomAttributes(editorOnlyAttributeType, true).Any()) { return; } #endif ComponentWrapper componentWrapper = (ComponentWrapper)gameObject.AddComponent(componentWrapperType); _componentWrapperMap.Add(componentType, componentWrapper); } }
public void OnComponentAddedToEntity(object sender, Entity entity, Type componentType) { if (_componentWrapperMap.ContainsKey(componentType)) { return; } Type componentWrapperType = componentType.Assembly.GetTypes() .Where(field => field.BaseType != null && field.BaseType.GetGenericArguments().Where(genericArgType => genericArgType == componentType).Any()) .FirstOrDefault(); if (componentWrapperType != null) { ComponentWrapper componentWrapper = (ComponentWrapper)gameObject.AddComponent(componentWrapperType); _componentWrapperMap.Add(componentType, componentWrapper); } }