Bonjour,

Nom : dbc197f32a7f3f1cdcdfebbb4ee833ef694c0816.jpeg
Affichages : 594
Taille : 71,4 Ko

Mon projet est un city builder sur Unreal Engine 5 (c++ et blueprints)

Les rectangles rouges sont des classes c++. Les blancs sont des Blueprints. Les flèches rouges sont #include . Les flèches bleues sont l'héritage (classe c++ -> Blueprint). Les flèches noires sont des références de classes de Blueprint.

MyNodeClass, MySegmentClass et InfrastructureGraphManagerClass sont utilisés pour définir et mettre à jour le graphe du réseau routier.

Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
AMySegmentClass* AInfrastructureGraphManager::ConnectNodes(AMyNodeClass * Nod1, AMyNodeClass * Nod2, SegmentType SegType, bool IsCurv)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FSubdividedSegment AInfrastructureGraphManager::SubdivideSegment(AMySegmentClass * Segment, FVector NewNodeLocation)
DrawPreviewInfrastructure_BP permet de prévisualiser le réseau routier avant de le valider.
Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
DrawStraightSegment()
DrawTangentSegment()
DrawTangentSegmentsAndCurve()
SnapMouseOnExistingNode()
DrawInfrastructure_BP permet de dessiner le réseau routier après validation de l'aperçu.
Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
DrawSegmentAndTwoNodes()
DrawSegmentAndTwoNodesFromColinear()
SplitStraightSegmentForCrossroads()
ConvertTurnNodeToCrossroads()
Spline_BP contient des composants spline et un procedural mesh (qui est utilisé pour les jonctions procédurales). Chaque instance de Spline_BP est stockée dans le tableau SplinesArray à l'intérieur de DrawInfrastructure_BP. Chaque index de ce tableau est stocké dans la variable MySegmentClass->SplinesArrayIndex.

Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
AttachMeshes()
UpdateSplineComponents()
ZonesBlock_BP est utilisé pour stocker les données des zones du bâtiment. L'une de ses variables est un tableau 2D de structures Zones.

Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Update()
Draw()
Erase()
SetConvexHull()
ZonesManager_BP permet de gérer les ZonesBlock_BP en fonction du réseau routier.

Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SpawnZBsAroundSubSpline()
SetZonesPoints()
UpdateZBsConvexHull()
SpawnZBsAroundSegment()
Comme vous le savez peut-être, CityBuilderPlayerController_BP est utilisé pour appeler les fonctions que nous voulons en fonction des événements de souris/clavier.

Est-il nécessaire s'il vous plaît d'optimiser ce diagramme? Et si oui, comment ?