コード例 #1
0
ファイル: Spawner.cs プロジェクト: soulonefirst/BoomBam
    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();
コード例 #2
0
        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();
        }