protected override void OnUpdate() { Entities.ForEach((TextMeshProUGUI c0) => { var entity = GetPrimaryEntity(c0); DstEntityManager.AddComponentData(entity, new BuildTextTag { }); DstEntityManager.AddComponentData(entity, new Dimensions { Value = c0.rectTransform.Int2Size() }); DstEntityManager.AddComponentData(entity, new AppliedColor { Value = c0.color }); DstEntityManager.AddComponentData(entity, new TextFontID { Value = c0.font.GetInstanceID() }); DstEntityManager.AddComponentData(entity, new TextOptions { Size = (ushort)c0.fontSize, Style = c0.fontStyle, Alignment = c0.alignment.FromTextAnchor() }); DstEntityManager.AddComponentObject(entity, c0.font.material); AddTextData(entity, c0.text); }); }
protected override void OnUpdate() { Entities.WithAll <LightConversionOptIn>().ForEach((Light light) => { var entity = GetPrimaryEntity(light); DstEntityManager.AddComponentObject(entity, light); }); }
protected override void OnUpdate() { Entities.ForEach((Sink sink, ParticleSystem ps, ParticleSystemRenderer psr) => { // Every scene needs a Sink, so it can drive the DAG sorting. var sinkEntity = GetPrimaryEntity(sink); DstEntityManager.AddComponent <DagIsStale>(sinkEntity); DstEntityManager.AddComponentObject(sinkEntity, ps); DstEntityManager.AddComponentObject(sinkEntity, psr); }); }
protected override void OnUpdate() { if (TextureBin.TryLoadTextureBin("TextureBin", out TextureBin textureBin)) { var binEntity = GetPrimaryEntity(textureBin); if (!DstEntityManager.HasComponent <TextureBin>(binEntity)) { DstEntityManager.AddComponentObject(binEntity, textureBin); } } }
protected override void OnUpdate() { Entities.ForEach((Image image) => { TextureBin.TryLoadTextureBin("TextureBin", out TextureBin textureBin); var texture = image.sprite != null ? image.sprite.texture : Texture2D.whiteTexture; var imageIndex = textureBin.Add(texture); var entity = GetPrimaryEntity(image); var material = image.material != null ? image.material : Canvas.GetDefaultCanvasMaterial(); DstEntityManager.AddComponentObject(entity, material); // TODO: Internally this would need a look up table... // DstEntityManager.AddSharedComponentData(entity, new MaterialID { Value = material.GetInstanceID() }); var rectSize = image.rectTransform.Int2Size(); DstEntityManager.AddComponentData(entity, new TextureKey { Value = imageIndex }); DstEntityManager.AddComponentData(entity, new AppliedColor { Value = image.color }); DstEntityManager.AddComponentData(entity, new Dimensions { Value = rectSize }); var spriteTexture = image.sprite; var spriteRes = spriteTexture != null ? new int2(spriteTexture.texture.width, spriteTexture.texture.height) : rectSize; DstEntityManager.AddComponentData(entity, new DefaultSpriteResolution { Value = spriteRes }); var spriteData = SpriteData.FromSprite(image.sprite); DstEntityManager.AddComponentData(entity, spriteData); // TODO: Does not handle image slicing DstEntityManager.AddBuffer <MeshVertexData>(entity).ResizeUninitialized(4); DstEntityManager.AddBuffer <TriangleIndexElement>(entity).ResizeUninitialized(6); }); }
public override void OnTargetUpdate() { CurrentArchetype = default; CurrentKitResource = default; CurrentArchetypeResource = default; CurrentGameGraphicResource = default; if (!TryGetComponent(out m_Animation)) { m_Animation = gameObject.AddComponent <UnitVisualAnimation>(); if (!DstEntityManager.HasComponent(BackendEntity, typeof(UnitVisualAnimation))) { DstEntityManager.AddComponentObject(BackendEntity, m_Animation); } } m_Animation.OnBackendSet(this); DstEntityManager.AddComponentData(BackendEntity, RuntimeAssetDisable.All); }