/// <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); }