/// <summary>
        /// 処理の開始時と終了時に経過時間付きのログを出力します
        /// </summary>
        public static async UniTask WithTimeLog(this UniTask task, string message)
        {
            OnStartTimeLog?.Invoke(message);
            var   now = DateTime.Now;
            await task;

            OnFinishTimeLog?.Invoke(message, DateTime.Now - now);
        }
        /// <summary>
        /// 処理の開始時と終了時に経過時間付きのログを出力します
        /// </summary>
        public static async UniTask <T> WithTimeLog <T>(this UniTask <T> task, string message)
        {
            OnStartTimeLog?.Invoke(message);
            var now    = DateTime.Now;
            var result = await task;

            OnFinishTimeLog?.Invoke(message, DateTime.Now - now);
            return(result);
        }