1.1.2 • Published 8 years ago
@umm/event_activator v1.1.2
EventActivator
- アプリケーション全体のイベント有効状態を管理するためのクラスを提供します。
Requirement
Install
npm install github:umm-projects/event_activatorUsage
個別の実装
using UnityEngine;
using UnityModule;
using UniRx;
public class Sample : MonoBehaviour {
public void Start() {
EventActivator.Instance.OnActivateAsObservable().Subscribe(
(_) => {
// 有効になったときの処理
// コライダの enabled を true にするなど
}
)
EventActivator.Instance.OnDeactivateAsObservable().Subscribe(
(_) => {
// 無効になったときの処理
// コライダの enabled を false にするなど
}
)
}
public void Sample1() {
EventActivator.Instance.Deactivate();
}
public void Sample2() {
EventActivator.Instance.Activate();
}
}OnActivateAsObservable()が返すストリームを購読し、イベントが有効になったときの処理を実装します。OnDeactivateAsObservable()が返すストリームを購読し、イベントが無効になったときの処理を実装します。- ボタンクリック時など、排他的なイベント実行を行いたい場合に
Deactivate()メソッドを呼び出します。 - 次画面に遷移した場合や、次のボタンが表示されるタイミングなどで
Activate()メソッドを呼び出し、無効状態を解除します。
一括設定
using UnityEngine;
using UnityModule; // この using がないと Extension Method が設定されません
public class Sample : MonoBehaviour {
private void Start() {
this.RegisterEventActivationHandler();
}
}UnityEngine.Component向けにRegisterEventActivationHandler()という拡張メソッドを提供しています。- 呼び出すと、
OnActivateAsObservable()とOnDeactivateAsObservable()を自動的に購読し、同一 GameObject にアタッチされているUnityEngine.UI.GraphicのraycastTargetやUnityEngine.Collider,UnityEngine.Collider2Dのenabledのオンオフを切り替える実装を仕込みます。 - 第一引数に真偽値を渡すと子孫 Component を含むかどうかを変更可能です。
- default:
true falseを渡すと、自身の GameObject のみを対象とします。
- default:
型の制約
using UnityEngine;
using UnityModule; // この using がないと Extension Method が設定されません
public class Sample : MonoBehaviour {
private void Start() {
this.RegisterEventActivationHandler<BoxCollider2D>();
}
}UnityEngine.UI.Graphic,UnityEngine.Collider,UnityEngine.Collider2Dの何れかの継承型に限って有効無効を操作します。- 「とにかく何らかの 2D Collider を On/Off」という場合には
this.RegisterEventActivationHandler<Collider2D>()とすると良いでしょう。
License
Copyright (c) 2017-2018 Tetsuya Mori
Released under the MIT license, see LICENSE.txt