/// <summary> <see cref="SourceObject"/> を割り当てる <para></para>
    /// 割り当て済みなら、既存のインスタンスを破棄して新しく割り当てなおす </summary>
    public void Bind()
    {
        if (source)
        {
            Unbind();
        }

        // 未使用の SourceObject があれば再利用する
        var existsFreeObject = SourceObjectManager.ExistsFreeObject();

        source = existsFreeObject ?
                 SourceObjectManager.GetFreeObject() :
                 SourceObject.Create(isBind ? transform : null);

        // 未使用のものを割り当てられたとき、管理下に置く設定なら移動させる
        if (existsFreeObject && isBind)
        {
            source.transform.SetParent(transform);
        }
    }
 void OnDestroy()
 {
     SourceObjectManager.Remove(this);
 }
 // 生成されると自身で管理クラスへの登録、削除を行う
 void Awake()
 {
     SourceObjectManager.Add(this);
 }