/// <summary> /// 自分が親としてAddSceneされる時に情報を保持する /// </summary> public void AddChild(SceneData addSceneData) { ActiveChildren.Add(addSceneData); // 親を自分とする addSceneData.Parent = this; }
/// <summary> /// AddSceneDataをキャッシュリストに情報を移動させる /// その後AddSceneDataは削除 /// </summary> public void MoveToCacheByChildData() { PrevChildren.Clear(); PrevChildren.AddRange(ActiveChildren); ActiveChildren.Clear(); }
public void Render(SpriteBatch batch, AssetManager assetManager) { RenderPosition = Position + (Parent?.RenderPosition ?? Vector2.Zero); RenderTransform = (Parent?.RenderTransform ?? Matrix.Identity) * Transform(); if (!CustomBatch) { batch.Begin(transformMatrix: RenderTransform, samplerState: Camera2D.SamplerState); } Renderer?.Render(this, batch, assetManager); if (!CustomBatch) { batch.End(); } foreach (var entity in ActiveChildren.Where(x => !x.Hidden)) { entity.Render(batch, assetManager); } }
public void RemoveChild(SceneData addSceneData) { addSceneData.Parent = null; ActiveChildren.Remove(addSceneData); }