MessageBrokerでBaseClassやInterfaceのイベントを受け取る

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()…

TaskとMessageBrokerを活用してゲームロジックを書くとこんなシンプルに書ける

ゲーム開発の入門書の一番最初で「毎フレーム描画処理を挟む必要があるので、こうは書けません。」って言ってくるサンプルコードあるじゃないですか。 あれ、あのまま書けたらめっちゃ良いですよね。という話です。 UniRx, UniTask, TaskMessageBrokerを使い…

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>…

BridgeJsCoreUnity - UnityでJavaScriptを走らせる

github.com UnityからJavaScriptを走らせるやつです。iOS, macOS限定です。 もう死語になったUnityScriptではなく、ちゃんとJavaScriptです。 実態はJavaScriptCoreを叩く薄いラッパーです。 jsからC#のメソッドを呼び出す、みたいな高度なことは出来ません…

V言語でjsやwasmを出力する

コンパイルが爆速、Null無し、Immutable variables by default、Pure functions by defaultと自分が好きな機能盛りだくさんなV言語。 そんなV言語がjsやwasmの出力に対応しました!!! が、出力方法はまだドキュメントに乗っていません。 まあそのうち乗る…

Shapesで遊んだ記録

Shapesとは https://acegikmo.com/shapes/ Shader Forgeを作ったFreya Holmérさんが作った新しいUnity向けリアルタイムベクターグラフィック描画ライブラリ。 つまり、自分が求めていたものということ。 今の所、$10/月のパトロンになると入手できます。 Dis…

AnimeTask v1.0 公開しました

github.com Task(async/await)ガンガン使ってる方向けのTweenアニメーションライブラリです。 詳細は前回の記事で。 アニメーション処理ってRxよりTaskの仕事だと思うんですが、 AnimeRxの方が未だに人気なんですよね。 みんなTask使おう。 v1.0.0で何が変わ…

Unity2019.3以降で新しいキャッシュサーバーUnity Acceleratorをコマンドラインから利用する

2019.3から古いキャッシュサーバーは使えなくなり、UnityAcceleratorになりました。 普通にエディタから使う分にはこちらのページを参考に。 コマンドラインから利用するには -adb2 -EnableCacheServer -cacheServerEndpoint Address:Port を指定する。 これ…

HxBitMini - Haxe向けの軽量シリアライズライブラリ

github.com See GitHub for a description in English! haxelibにも公開しました。 https://lib.haxe.org/p/hxbitmini/ haxelib install hxbitmini して、 -lib hxbitmini するだけで使えます。 HxBitについて HaxeにはHxBitというオブジェクトをシリアライ…

HaxeでluaのネイティブコードにArrayを公開するときの作法

ここで自分が質問してたことのまとめです。 https://github.com/HaxeFoundation/haxe/issues/9512 問題点 Arrayをluaのネイティブコードに向けて公開したとき、 Haxeは0-indexedなのに対し、luaは1-indexedなので、0番目の要素が(取り方によっては)取れな…

作業してるのに進捗無くて辛いのでやったこと書いて自己顕示欲を満たすやつ

おさらい やってること Aprotの開発 現在の目標 プロトタイプということで、まずは動くものを04/06に作った。 実はこれめっちゃ色んな問題を裏で抱えていたので、1から書き直している途中。 つまり、「04/06時点と同等のことが出来るようにする」のが現在の…

Haxe macroでtypeのArrayを定義する

var ct: ComplexType = TPath({ pack: [], name: 'Array', params: [TPType(type.toComplexType())] }); fields.push({ pos: pos, name: "value", access: [APublic], kind: FVar(ct, macro []), meta: [{ name: ":s", pos: pos }] }); ついでに、metaつける…

2020年のゲーム開発環境、こんなもんか?

自分のブログなのでポエムを書きます。 Aprotの記事を公開して、「ゲームじゃなくてゲームエンジンを作りたい人」に見られがちなのだけれど、 それは間違いで「2020年のゲーム開発環境が自分に追いついていないと本気で思ってる人」が正解です。 ここでいう…

HaxeからC#にArray<T>を出力したらobject[]になるのを回避したい

Haxeの Array<T> をC#出力すると、 object[] になってしまい、型〜〜〜〜〜〜〜!!!!!ってなるのをどうしたものかと考えました。 この挙動自体は仕様で間違いないらしい https://github.com/HaxeFoundation/haxe/issues/5434#issuecomment-230581990 要件 H</t>…

UniTask v2のRCが出たので触ってみた (RC4対応版)

UniTask v2の全機能を紹介してるわけではありません。新機能一覧はReleaseページを追ってください。 RCなので、正式版ではインターフェイスなどもろもろ代わっている可能性があります。 UniTaskのReleaseページから最新版を落として使いましょう。 雑談 Unit…