internal static ComponentInfo[] GetComponentInfos(string contextName, string[] componentNames, Type[] componentTypes) { if (!ContextToComponentInfos.TryGetValue(contextName, out var infos)) { var infosList = new List <ComponentInfo>(componentTypes.Length); for (var i = 0; i < componentTypes.Length; i++) { infosList.Add( new ComponentInfo { index = i, name = componentNames[i], type = componentTypes[i] }); } infos = infosList.ToArray(); ContextToComponentInfos.Add(contextName, infos); } return(infos); }
internal static ComponentInfo[] GetComponentInfos(IEntity entity) { if (!ContextToComponentInfos.TryGetValue(entity.ContextInfo.name, out var infos)) { var contextInfo = entity.ContextInfo; var infosList = new List <ComponentInfo>(contextInfo.componentTypes.Length); for (var i = 0; i < contextInfo.componentTypes.Length; i++) { infosList.Add( new ComponentInfo { index = i, name = contextInfo.componentNames[i], type = contextInfo.componentTypes[i] }); } infos = infosList.ToArray(); ContextToComponentInfos.Add(entity.ContextInfo.name, infos); } return(infos); }