ZStringをUPM経由でインストールする方法
# インストール方法
GitHubページに記載されているが、ネット検索するとパッケージ経由ばかりだったので共有しておきます。
UPM -> +ボタンから、`Add package from git URL`を選択し、
以下を入力、決定する
`https://github.com/Cysharp/ZString.git?path=src/ZString.Unity/Assets/Scripts/ZString`
参考
Assets以下に配置されないだけでスッキリするし、レポジトリを公開する際にも生データを上げないで済むのでとても助かります。
【UniRx】AddToについて【使い方】
はじめに
AddTo() は、UniRxが提供している拡張メソッドです。
UniRxでは、購読の破棄を正しく行わないとメモリリークが発生します。
AddTo()を記述する事で、引数に渡したGameObjectがDestroyされる際に自動で購読破棄されるようになります。
使い方
AddTo()は、Subscribe時にメソッドチェーンで続けて記述します。
(厳密には、IDisposableインスタンス全てに生やすことが可能です)
自身の寿命に紐づける時
using UniRx; class Sample : MonoBehaviour { IntReactiveProperty score = new IntReactiveProperty(); void Awake() { score.Subscribe(x => 購読処理) .AddTo(this); // AddTo(gameObject)と同義 } }
もちろん、他者の寿命に紐づける事も可能です。
[SerializeField] GameObject other; void Awake { score.Subscribe(x => 購読処理) .AddTo(other); }
挙動
GameObjectを渡した場合は、GameObjectがDestroyされると自動的に購読破棄されます
Componentを渡した場合は、アタッチされているGameObjectがDestroyされると自動的に購読破棄されます
いずれも、GameObjectがDestroyされる時にのみ破棄される事に注意が必要です
まとめ
- 購読破棄忘れによるメモリリークを防ぐ
- Subscribe時にメソッドチェーンで記述する
- GameObjectを渡した場合は、GameObjectがDestroyされると自動的に購読破棄される
- Componentを渡した場合は、アタッチされているGameObjectがDestroyされると自動的に購読破棄される