C#
してはいけないこと(Dictionary内の要素を書き換える)は、できないようにするべき。ということで、 こういうコードをよく書く。 public IReadOnlyDictionary<string, IReadOnlyList<int>> PublicDictionary { get; } private readonly Dictionary<string, List<int>> _privateDictionary = new(); public</string,></string,>…
AppStoreはこちら → C#からApp Store Connect APIを叩いて売上レポートを取得する 悩んでググってこの記事に辿り着いた方向けの何の補足もない不親切な記事です。 公式のドキュメント using Google.Apis.Auth.OAuth2; using Google.Cloud.Storage.V1; const …
Google Playはこちら → C#からGoogle Play Consoleの売上レポートを取得する 悩んでググってこの記事に辿り着いた方向けの何の補足もない不親切な記事です。 Pkcs8PrivateBlobとかはWindowsでしか動かないので使ってません。 App Store Connect APIのドキュ…
Google Play Consoleでの実績の登録って、実績数 * 言語数の作業が発生するのでとても手作業でやってられません。 ということで、C#からやりましょう。 Google Play Games Services Publishing APIのセットアップ Google Play Games Services Publishing API…
public class Sandbox1 : MonoBehaviour { public void Start() { var channel = Channel.CreateSingleConsumerUnbounded<ICommand>(); SetupWriter(channel.Writer); SetupReader(channel.Reader).Forget(); } private void SetupWriter(ChannelWriter<ICommand> channelWriter)</icommand></icommand>…
async/awaitで、特定条件までawaitしつつも毎フレームこれを実行したい!みたいなめっちゃゲームでしか出てこなさそうなことをどう書くと綺麗に書けるか考えている。 とりあえず素直に書くならこう。 var cancellationTokenSource = new CancellationTokenSo…
Testとかのために同期的にAddressableからAssetを読みたい時用。 public static class EditorAddressables { public static AddressableAssetGroup[] GetGroups() { var settings = UnityEditor.AddressableAssets.AddressableAssetSettingsDefaultObject.Se…
null許容参照型って? ドキュメントを読みましょう。 これが欲しかった!最高! Unityで使うには辛さがある SerializeFieldは#nullable enableで囲う。とかは良いとして、 public class Hoge : MonoBehaviour { private HogeComponent _cache; public void S…
using System; using Cysharp.Threading.Tasks; using Extensions; using UnityEngine; public class MessageTest : MonoBehaviour { public void Start() => Test().Forget(); private async UniTask Test() { var messageBroker = new TaskMessageBroker()…
UniRxに入っているAsyncMessageBrokerのTaskバージョン using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; namespace Extensions { public interface ITaskMessagePublisher { UniTask PublishAsync<T>(T message); } public in</t>…
UniTask v2の全機能を紹介してるわけではありません。新機能一覧はReleaseページを追ってください。 RCなので、正式版ではインターフェイスなどもろもろ代わっている可能性があります。 UniTaskのReleaseページから最新版を落として使いましょう。 雑談 Unit…
var fixedTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Japan"); var jstNow = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, fixedTimeZone);