-
Notifications
You must be signed in to change notification settings - Fork 15
New Project Initialization
AntonKalatski edited this page Jan 29, 2025
·
6 revisions
- Use
Create/ME.BECS/Create Project
menu to create and initialize default project template - Rename
ProjectInitializer
toVisualInitializer
- Create
LogicInitializer
script and open it:
[DefaultExecutionOrder(-100)]
public class LogicInitializer : ME.BECS.Network.NetworkWorldInitializer {
public static LogicInitializer instance;
public static ME.BECS.Network.NetworkModule GetNetworkModule() => LogicInitializer.instance.networkModule;
protected override void Awake() {
instance = this;
base.Awake();
}
protected override void DoWorldAwake() {
this.world.parent = LogicInitializer.instance.world;
base.DoWorldAwake();
}
}
- Open
VisualInitializer
script:
[DefaultExecutionOrder(-80)]
public class VisualInitializer : WorldInitializer {
public static VisualInitializer instance;
protected override void Awake() {
instance = this;
base.Awake();
}
protected override void DoWorldAwake() {
this.world.parent = LogicInitializer.instance.world;
base.DoWorldAwake();
}
}
- Now your worlds are connected like this:
Logic.parent = Logic
Visual.parent = Logic
So you can access them at any time by this inheritance.
- Create LogicInitializer prefab and place it on your scene
- Select Logic world type in LogicInitializer prefab
- Add NetworkModule and ViewsModule to LogicInitializer
- Leave ViewsModule only on VisualInitializer prefab
- Create LogicFeatureGraph and assign it into the field in LogicInitializer prefab. Use this graph for your logic systems.
- Use ProjectFeaturesGraph for your input and local visual systems.
- All is done
- Use
Create/ME.BECS/Create Project
menu to create and initialize default project template - Select
ProjectInitializer
on the scene and leaveViewsModule
only - All is done