/// <summary> /// 替换Component /// </summary> /// <param name="component"></param> public void replaceComponent(ITezComponent component, bool close_old = true) { var id = component.comUID; var old = m_Components[id]; if (old != null) { m_Components[id] = null; old.onRemove(this); foreach (var item in m_Components) { item?.onOtherComponentRemoved(old, id); } if (close_old) { old.close(); } } foreach (var item in m_Components) { item?.onOtherComponentAdded(component, id); } m_Components[id] = component; component.onAdd(this); }
/// <summary> /// 根据BasicComponent类型获得组件ID后添加实际组件 /// </summary> /// <typeparam name="BasicComponent">组件检索类型</typeparam> /// <param name="component">实际组件对象</param> public void addComponent(ITezComponent component) { var id = component.comUID; foreach (var item in m_Components) { item?.onOtherComponentAdded(component, id); } m_Components[id] = component; component.onAdd(this); }
public void removeComponent(ITezComponent component) { var id = component.comUID; var temp = m_Components[id]; m_Components[id] = null; temp.onRemove(this); foreach (var item in m_Components) { item?.onOtherComponentRemoved(temp, id); } }
protected virtual void onOtherComponentRemoved(ITezComponent com, int comID) { }
void ITezComponent.onOtherComponentRemoved(ITezComponent component, int comID) { this.onOtherComponentRemoved(component, comID); }
public void onOtherComponentRemoved(ITezComponent component, int comID) { }
public void onOtherComponentAdded(ITezComponent component, int comID) { }