コード例 #1
0
        /// <summary>
        /// タスクを実行します
        /// </summary>
        public void Play(string text, Action onCompleted = null)
        {
#if ENABLE_DEBUG_LOG
            m_name = text;

            Log($"【SingleTask】「{m_name}」開始");
            m_task.Play(() =>
            {
                Log($"【SingleTask】「{m_name}」終了");
                onCompleted?.Invoke();
            });
#else
            m_task.Play(text, onCompleted);
#endif
        }
コード例 #2
0
        /// <summary>
        /// タスクを実行します
        /// </summary>
        public void Play(string text, Action onCompleted = null)
        {
#if ENABLE_DEBUG_LOG
            m_name = text;

            Log($"【SingleTask】「{m_name}」開始");
            var startTime = Time.realtimeSinceStartup;
            m_task.Play(() =>
            {
                Log($"【SingleTask】「{m_name}」終了    {( Time.realtimeSinceStartup - startTime ).ToString( "0.###" ) } 秒");
                onCompleted?.Invoke();
            });
#else
            m_task.Play(text, onCompleted);
#endif
        }
        /// <summary>
        /// 複数の FontAsset を順番に更新します
        /// </summary>
        private void OnUpdateMulti()
        {
            var list = targets
                       .Select(c => c as TMP_FontAssetUpdaterSettings)
                       .Where(c => c != null)
            ;

            if (!list.Any())
            {
                return;
            }

            var task = new SingleTask();

            foreach (var n in list)
            {
                task.Add(onEnded =>
                {
                    var updater = new TMP_FontAssetUpdater();
                    updater.Start(n, onEnded);
                });
            }

            task.Play();
        }
コード例 #4
0
        /// <summary>
        /// タスクを実行します
        /// </summary>
        public void Play(string text, Action onCompleted = null)
        {
#if ENABLE_DEBUG_LOG
            m_name = text;

            Log($"【SingleTask】「{m_name}」開始");
            var startTime = Time.realtimeSinceStartup;
            var gcWatcher = new GCWatcher();
            gcWatcher.Start();
            m_task.Play(() =>
            {
                gcWatcher.Stop();
                Log($"【SingleTask】「{m_name}」終了    {( Time.realtimeSinceStartup - startTime ).ToString( "0.###" ) } 秒    GC {gcWatcher.Count.ToString()} 回");
                onCompleted?.Invoke();
            });
#else
            m_task.Play(text, onCompleted);
#endif
        }
コード例 #5
0
        /// <summary>
        /// いずれかのアセットが変更された時に呼び出されます
        /// </summary>
        private static void OnPostprocessAllAssets
        (
            string[] importedAssets,
            string[] deletedAssets,
            string[] movedAssets,
            string[] movedFromAssetPaths
        )
        {
            // TextAsset に変更があったかどうかを確認
            var textAssetList = importedAssets
                                .Where(c => c.EndsWith(".txt"))
                                .Select(c => AssetDatabase.LoadAssetAtPath <TextAsset>(c))
                                .Where(c => c != null)
            ;

            // 変更が無い場合は無視
            if (!textAssetList.Any())
            {
                return;
            }

            // Unity プロジェクトに含まれている TMP_FontAssetUpdaterSettings をすべて取得
            var settingsList = AssetDatabase
                               .FindAssets("t:TMP_FontAssetUpdaterSettings")
                               .Select(c => AssetDatabase.GUIDToAssetPath(c))
                               .Select(c => AssetDatabase.LoadAssetAtPath <TMP_FontAssetUpdaterSettings>(c))
                               .Where(c => c != null)
                               .Where(c => c.IsAutoUpdate)
                               .ToArray()
            ;

            // 存在しない場合は無視
            if (!settingsList.Any())
            {
                return;
            }

            // 変更があった TextAsset が TMP_FontAssetUpdaterSettings で参照されているか確認
            var targets = settingsList
                          .Where(c => textAssetList.Contains(c.CustomCharacterList))
            ;

            // すべて参照されていない場合は無視
            if (!targets.Any())
            {
                return;
            }

            // TMP_FontAssetUpdaterSettings が参照している TextAsset に変更があった場合は
            // 該当する FontAsset を更新する
            var task = new SingleTask();

            foreach (var n in targets)
            {
                task.Add(onEnded =>
                {
                    var updater = new TMP_FontAssetUpdater();
                    updater.Start(n, onEnded);
                });
            }
            task.Play();
        }