Entitas CSharp Versions Save

Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity

1.9.0

5 years ago

Added

  • Optimize generated code #780
    • This increases entity and component creation performance
  • Optimize Visual Debugging performance #799
    • This increases the performance especially when having thousands of entities
  • Generate XML documentation #792
    • This will show documentation in the IDE
  • Using latest bee

Changed

  • Context ctor signature changed. Generate to fix compiler errors. If you don't use the Entitas.Roslyn plugins from the Unity Asset Store, you have to manually fix the affected generated context classes. E.g. Generated/Game/GameContext.cs, add () => new GameEntity() as a last argument
public sealed partial class GameContext : Entitas.Context<GameEntity> {

    public GameContext()
        : base(
            GameComponentsLookup.TotalComponents,
            0,
            new Entitas.ContextInfo(
                "Game",
                GameComponentsLookup.componentNames,
                GameComponentsLookup.componentTypes
            ),
            (entity) =>

#if (ENTITAS_FAST_AND_UNSAFE)
                new Entitas.UnsafeAERC(),
#else
                new Entitas.SafeAERC(entity),
#endif
            () => new GameEntity() // <---------- update here
        ) {
    }
}
  • Release retained entities when ReactiveSystem.Execute() has an exception #812
    • This fixes spamming the Unity console with error messages

1.8.2

5 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: http://u3d.as/NuJ

Hotfix release to re-add the Entitas.Roslyn folder.

1.8.1

5 years ago

Note

Skip Entitas 1.8.1. Due to project stucture changes, the build script didn't pick up Entitas.Roslyn ;(


As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Entitas

⚙️ Add "@" in front of component name if it is a C# keyword #744 #756 @roygear ⚙️ Added convenience ctor to JobSystem to use all available threads on the device ⚙️ JobSystem.Execute() is now virtual

Jenny

🛠 Fixed delays when running jenny server 🆕 jenny help aka man page 🆕 jenny wiz beta. Running Jenny.exe without args will automatically run jenny wiz

jenny-search

Jenny Wizard is wip. If you have feedback or feature request, please add a comment here https://github.com/sschmid/Entitas-CSharp/issues/778

1.8.0

5 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Entitas

⚙️ Enabled [Event] for non components #743 ⚠️ Renamed CustomComponentNameAttribute to ComponentNameAttribute

Jenny

⚙️ Added more logs to gen command

Generating using /Users/sschmid/Dev/C#/Half-life3/Jenny.properties
Generating done (13220 files in 4 seconds)

⚙️ Added group to ICommand to support grouped usage overview

Note: Ignore jenny wiz This feature accidentally made it into this release but it's far from done

1.7.0

5 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Visual Debugging

⚙️ StringTypeDrawer now uses EditorGUILayout.DelayedTextField

Code Generator

🆕 Added CleanupAttribute ⚠️ Renamed UniquePrefixAttribute to FlagPrefixAttribute

Asset Store Version

🆕 Cleanup Data Providers and Code Generators

Instead of manually writing custom systems to remove components or destroy entities, you can now use the new [Cleanup] attribute to automatically generate <Context>CleanupSystems for you.

E.g. adding the [Cleanup] attribute to a DestroyedComponent can replace your custom DestroyEntitySystem.

[Cleanup(CleanupMode.DestroyEntity)]
public sealed class DestroyedComponent : IComponent {
}

There are currently two options:

  • CleanupMode.DestroyEntity
  • CleanupMode.RemoveComponent

CleanupMode.DestroyEntity will generate a system that destroys all entities which have this component.

CleanupMode.RemoveComponent will generate a system that will remove this component from all entities which have this component.

1.6.1

5 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Entitas

🛠 Fixed context.Reset() which doesn't remove event handlers anymore #725 🛠 Updated EntitasStats to exclude JobSystem and Feature

Jenny

🛠 Fixed Jenny dropdown UI to not show 'mixed...' anymore ⚙️ Added Jenny Server toggle to UI ⚙️ Added dry run option ⚠️ Removed EnsureStandalonePreProcessor 🆕 Added WarnIfCompilationErrorsPreProcessor

1.6.0

5 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

General

⚠️ Changed Entitas Asset Store package structure by separating Desperate Devs dlls into their own folder Please run jenny auto-import -s or modify Preferences.properties to update the paths to the plugins if necessary

Entitas

🛠 Added support to remove event listeners within event callback #698

⚠️ Improved Entitas Event API [Event(bool)] #717 Use "find and replace" to update all your EventAttribute usages [Event(true)] is now [Event(EventTarget.Self)] [Event(false)] is now [Event(EventTarget.Any)]

⚙️ Added support for [DontDrawComponent] for all components #678 💄 Updated comments for group.RemoveAllEventHandlers() #684 🛠 Fixed check for updates

DesperateDevs

⚙️ Updated TargetFrameworkProfilePreProcessor #721 🛠 Added str.ToUnixPath()

1.5.2

6 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Entitas

🛠 Fixed EventSystemsGenerator generated EventSystems per context but those systems contained EventSystems from all context

DesperateDevs

🛠 Added TcpMessageParser to reliably receive separate messages from a tcp stream

1.5.1

6 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

DesperateDevs

⚙️ Added better error message to EnsureStandalonePreProcessor

When EnsureStandalonePreProcessor is activated it will prevent you from accidentally generating in Unity. To generate in Unity make sure EnsureStandalonePreProcessor is not activated.

1.5.0

6 years ago

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638

Entitas

🆕 Added JobSystem for multi threading as a proof of concept.

public sealed class RotateSystem : JobSystem<GameEntity> {

    public RotateSystem(GameContext context, int threads) :
        base(context.GetGroup(GameMatcher.AllOf(GameMatcher.Rotation, GameMatcher.RotationVector)), threads) {
    }

    protected override void Execute(GameEntity entity) {
        entity.rotation.value = entity.rotation.value * Quaternion.Euler(entity.rotationVector.value);
    }
}

Limitations:

This is not a general purpose solution for all problems. It can be used to solve certain performance intense areas in your game. It can be very useful if there's a very large number of entities that have to be processed, or if the data transformation involves heavy calulations.

⚠️ EventSystemsGenerator generates EventSystems per context now. 🛠 Removed dependency on Entitas.CodeGeneration.Plugins from Entitas.VisualDebugging.Unity.Editor #312

DesperateDevs

🆕 Added EnsureStandalonePreProcessor to prevent accidentally generating in Unity