protected override void OnUpdate() { var time = Time.ElapsedTime; var ecb = m_EndSimulationEcbSystem.CreateCommandBuffer(); Entities .ForEach((ref DynamicBuffer<EntityToSpawnData> ETS, in DynamicBuffer<PrefabsData> PD) => { if (ETS.Length != 0) { for (int i = 0; i < ETS.Length; i++) { ecb.SetComponent(PD[ETS[i].Value.numPrefabToSpawn].Value, new Translation { Value = ETS[i].Value.moveData.startPosition }); var b = ecb.Instantiate(PD[ETS[i].Value.numPrefabToSpawn].Value); ecb.SetComponent(b, ETS[i].Value.moveData); if (ETS[i].Value.color != 0) { ecb.SetComponent(b, new ColorData { Value = ETS[i].Value.color }); } else ecb.AddComponent(b, new IdVfxData { Value = ETS[i].Value.numPrefabToSpawn }); ETS.RemoveAt(i); } } }).Schedule();
private void OnGUI() { if (_data == null) { if (GUILayout.Button("Load localization file")) { OnLoadData(); } return; } if (!_stylesInitialized) { SetStyles(); } if (_filters == null) { InitializeFilters(); } EditorGUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Search", _searchLabelStyle); _searchParameters = EditorGUILayout.TextField(_searchParameters, _searchFieldStyle).ToLower(); EditorGUI.BeginChangeCheck(); _filter = EditorGUILayout.Popup(_filter, _filters, _dropdownStyle); if (EditorGUI.EndChangeCheck()) { _searchParameters = ""; } _modificationFilter = (FilterOptions)EditorGUILayout.EnumFlagsField(_modificationFilter, _dropdownStyle); if (GUILayout.Button("Close", _closeButtonStyle)) { _data = null; return; } GUILayout.EndHorizontal(); _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos, GUILayout.Width(position.width), GUILayout.Height(position.height - _fixedHeight * 2 - 5)); EditorGUILayout.BeginHorizontal(); GUILayout.Space(3 * (_buttonStyle.fixedWidth + 4.5f)); EditorGUILayout.LabelField("ID"); GUILayout.Space(_buttonStyle.fixedWidth); for (int i = 0; i < _data.Languages.Count; i++) { EditorGUI.BeginChangeCheck(); string newLanguage = EditorGUILayout.TextField(_data.Languages[i], _textStyle); if (GUILayout.Button("X", _buttonStyle)) { _data.RemoveLanguage(_data.Languages[i]); continue; } if (!EditorGUI.EndChangeCheck()) { continue; } _data.RenameLanguage(_data.Languages[i], newLanguage); InitializeFilters(); } EditorGUILayout.EndHorizontal(); for (int i = 0; i < _data.TranslationStrings.Count; i++) { ETS ets = _data.TranslationStrings[i]; if (IsFiltered(ets)) { continue; } bool hasChanged = false; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("+", _buttonStyle)) { OnAddString(i + 1); } if (GUILayout.Button("R", _buttonStyle)) { hasChanged = true; ets.ResetAll(); _data.HasNonUniqueKeys(); } if (GUILayout.Button("E", _buttonStyle)) { OnEdit(i); } if (ets.IsDeleted) { GUI.color = Color.grey; } else if (ets.IsNew) { GUI.color = Color.yellow; } else if (!ets.IsKeyUnique) { GUI.color = Color.red; } if (!ets.IsNew && !ets.IsDeleted && ets.IsKeyUnique && ets.IsKeyEdited) { GUI.color = Color.cyan; } EditorGUILayout.LabelField(ets.Key, _readOnlyFieldStyle); for (int j = 0; j < _data.Languages.Count; j++) { if (!ets.IsNew && !ets.IsDeleted) { GUI.color = ets.IsEdited[j] ? Color.cyan : Color.white; } EditorGUILayout.LabelField(ets.Get(_data.Languages[j]), _readOnlyFieldStyle); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); if (hasChanged) { _data.TranslationStrings[i] = ets; } } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Save file")) { OnSave(); } if (GUILayout.Button("Generate Translations.cs")) { LocalizationStringGenerator.Generate(); } if (GUILayout.Button("+ New language")) { OnAddLanguage(); } EditorGUILayout.EndHorizontal(); }