Conversation
|
Warning Rate limit exceeded@Thomlam has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 22 minutes and 35 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughLes modifications apportées dans cette demande de tirage concernent principalement la réorganisation et la mise à jour du prefab de la caméra principale dans Unity, renommé en "Chrono". Des objets de jeu supplémentaires ont été ajoutés pour gérer l'interface utilisateur, tandis que plusieurs composants ont été supprimés, notamment le composant de caméra. Des changements ont également été effectués dans la scène Changes
Possibly related PRs
Suggested reviewers
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Outside diff range and nitpick comments (1)
Assets/Scripts/UI/PlayerHealth.cs (1)
4-5: Vérification des dépendances requises pour le système de mortLes nouvelles importations et le champ
deadCanvassont cohérents avec l'implémentation du système de mort. Cependant, il serait préférable de documenter le rôle du canvas de mort dans l'interface utilisateur.Suggestion d'ajout de documentation :
+ [Tooltip("Canvas affiché lors de la mort du joueur")] public GameObject deadCanvas;Also applies to: 16-16
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (5)
- Assets/Prefabs/Main Camera.prefab (4 hunks)
- Assets/Scenes/EmptyRoom_2.unity (7 hunks)
- Assets/Scripts/UI/GameOverManager.cs (0 hunks)
- Assets/Scripts/UI/GameOverManager.cs.meta (0 hunks)
- Assets/Scripts/UI/PlayerHealth.cs (4 hunks)
💤 Files with no reviewable changes (2)
- Assets/Scripts/UI/GameOverManager.cs
- Assets/Scripts/UI/GameOverManager.cs.meta
🔇 Additional comments (5)
Assets/Scripts/UI/PlayerHealth.cs (1)
86-91: 🛠️ Refactor suggestionSécurisation du retour au menu
La méthode de retour au menu présente des risques potentiels.
- Vérifier que la scène "Menu" existe bien
- Gérer les erreurs potentielles lors de la destruction de l'objet temporaire
public void ReturnToMenu() { - GameObject socket = GameObject.FindWithTag("Temporary"); - if (socket != null) Destroy(socket.gameObject); - SceneManager.LoadScene("Menu"); + try + { + GameObject socket = GameObject.FindWithTag("Temporary"); + if (socket != null) + { + Destroy(socket.gameObject); + } + + if (SceneUtility.GetBuildIndexByScenePath("Menu") != -1) + { + SceneManager.LoadScene("Menu"); + } + else + { + Debug.LogError("La scène 'Menu' n'existe pas dans le build !"); + } + } + catch (System.Exception e) + { + Debug.LogError($"Erreur lors du retour au menu : {e.Message}"); + } }✅ Verification successful
La scène Menu est correctement configurée, mais la gestion d'erreurs peut être améliorée
La vérification a confirmé que :
- La scène "Menu" est bien incluse dans les paramètres de build Unity
- Le chemin exact est
Assets/Scenes/UI/Menu.unity- Cette fonctionnalité est également utilisée dans
PauseMenu.csde manière similaireLa suggestion de refactoring proposée reste pertinente pour une meilleure robustesse du code, mais le risque initial concernant l'existence de la scène est écarté.
Points d'amélioration recommandés :
- Ajouter un try-catch pour la gestion des erreurs potentielles
- Harmoniser la gestion du retour au menu entre
PlayerHealth.csetPauseMenu.cs🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Vérifier l'existence de la scène Menu dans le build rg -l "Menu" "ProjectSettings/EditorBuildSettings.asset"Length of output: 96
Script:
#!/bin/bash # Vérifier le contenu du fichier de build settings pour confirmer que la scène Menu est bien incluse cat ProjectSettings/EditorBuildSettings.assetLength of output: 500
Script:
#!/bin/bash # Rechercher d'autres références à la scène Menu dans le projet rg -g "!{*.meta,*.asset}" "Menu" -A 2 -B 2Length of output: 6815
Script:
#!/bin/bash # Vérifier si d'autres scripts utilisent également LoadScene avec "Menu" ast-grep --pattern 'SceneManager.LoadScene("Menu")'Length of output: 204
Assets/Scenes/EmptyRoom_2.unity (3)
407-410: Bonne implémentation du système de mort !L'ajout de la référence
deadCanvasau prefab du joueur permet une bonne gestion de l'interface utilisateur lors de la mort du personnage.
227-227: Configuration correcte de l'état initial du mini-jeuLa désactivation par défaut du mini-jeu Pierre-Papier-Ciseaux est une bonne pratique.
702-758: Vérifier le placement de l'arbalèteL'arbalète est placée assez haut dans la scène (y = 8.66). Assurez-vous que cette position est intentionnelle et qu'elle s'intègre bien avec le système de mort.
✅ Verification successful
Placement de l'arbalète validé dans le contexte des pièges
La position élevée de l'arbalète est cohérente avec son rôle de piège, comme le confirme son emplacement dans le dossier
Assets/Prefabs/Traps/Crossbow/. La présence de variantes directionnelles (up, down, side_left, side_right) indique un système de pièges bien conçu avec des arbalètes placées à différentes positions stratégiques.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Vérifier les autres objets à cette hauteur rg "m_LocalPosition.y.*8\." --type yamlLength of output: 190
Script:
#!/bin/bash # Search for y position values in Unity scene files fd -e unity -x rg -l "m_LocalPosition.y" # Then get specific y values around 8-9 range fd -e unity -x rg "m_LocalPosition.y.*value:.*[89]"Length of output: 473
Script:
#!/bin/bash # Let's check EmptyRoom_2.unity for all y positions to understand the vertical layout rg "m_LocalPosition.y.*value:" ./Assets/Scenes/EmptyRoom_2.unity -A 1 # Also check for any prefabs with "crossbow" in their name fd "crossbow.*prefab"Length of output: 734
Assets/Prefabs/Main Camera.prefab (1)
1472-1478: Confirmer l'inactivation du GameObject 'DeadCanvas'Le GameObject 'DeadCanvas' est désactivé (m_IsActive: 0) aux lignes 1472-1478. Vérifiez si cela est intentionnel. Si 'DeadCanvas' est censé gérer l'affichage lors de la mort du joueur, son inactivation pourrait empêcher son fonctionnement.
| currentHealth = 0; | ||
| } | ||
| UpdateHealthBar(); | ||
| if (currentHealth <= 0) | ||
| { | ||
| Die(); |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Amélioration de la gestion de la mort du joueur
La logique de vérification de la mort est correcte, mais il manque un retour visuel ou sonore pour indiquer les dégâts subis.
currentHealth -= amount;
if (currentHealth < 0)
{
currentHealth = 0;
}
UpdateHealthBar();
+ // Feedback visuel des dégâts
+ StartCoroutine(DamageFlash());
if (currentHealth <= 0)
{
Die();
}Committable suggestion was skipped due to low confidence.
| void Die() | ||
| { | ||
| if (deadCanvas != null) | ||
| { | ||
| deadCanvas.SetActive(true); | ||
| } | ||
| GetComponent<PlayerMovement>().enabled = false; | ||
| } |
There was a problem hiding this comment.
Vérification de la méthode de mort
La désactivation du mouvement du joueur est implémentée, mais il manque plusieurs aspects importants pour une expérience de mort complète.
Suggestions d'améliorations :
- Ajouter un délai avant l'affichage du canvas de mort
- Désactiver les collisions du joueur
- Jouer une animation de mort
- Sauvegarder les statistiques de la partie
void Die()
{
+ // Désactiver les collisions
+ GetComponent<Collider2D>().enabled = false;
+
+ // Jouer l'animation de mort
+ StartCoroutine(PlayDeathSequence());
+
if (deadCanvas != null)
{
- deadCanvas.SetActive(true);
+ StartCoroutine(ShowDeathScreen());
}
GetComponent<PlayerMovement>().enabled = false;
}Committable suggestion was skipped due to low confidence.
| currentHealth = maxHealth; | ||
| UpdateHealthBar(); | ||
|
|
||
| if (deadCanvas != null) deadCanvas.SetActive(false); |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Initialisation sécurisée du canvas de mort
L'initialisation est correcte, mais la vérification de nullité pourrait être plus explicite.
- if (deadCanvas != null) deadCanvas.SetActive(false);
+ if (deadCanvas != null)
+ {
+ deadCanvas.SetActive(false);
+ }
+ else
+ {
+ Debug.LogWarning("DeadCanvas n'est pas assigné dans l'inspecteur !");
+ }📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| currentHealth = maxHealth; | |
| UpdateHealthBar(); | |
| if (deadCanvas != null) deadCanvas.SetActive(false); | |
| currentHealth = maxHealth; | |
| UpdateHealthBar(); | |
| if (deadCanvas != null) | |
| { | |
| deadCanvas.SetActive(false); | |
| } | |
| else | |
| { | |
| Debug.LogWarning("DeadCanvas n'est pas assigné dans l'inspecteur !"); | |
| } |
| Camera: | ||
| m_ObjectHideFlags: 0 | ||
| m_CorrespondingSourceObject: {fileID: 0} | ||
| m_PrefabInstance: {fileID: 0} | ||
| m_PrefabAsset: {fileID: 0} | ||
| m_GameObject: {fileID: 4190906850344886629} | ||
| m_Enabled: 1 | ||
| serializedVersion: 2 | ||
| m_ClearFlags: 2 | ||
| m_BackGroundColor: {r: 0.061365236, g: 0.06292273, b: 0.066037714, a: 0} | ||
| m_projectionMatrixMode: 1 | ||
| m_GateFitMode: 2 | ||
| m_FOVAxisMode: 1 | ||
| m_Iso: 200 | ||
| m_ShutterSpeed: 0.005 | ||
| m_Aperture: 16 | ||
| m_FocusDistance: 10 | ||
| m_FocalLength: 50 | ||
| m_BladeCount: 5 | ||
| m_Curvature: {x: 2, y: 11} | ||
| m_BarrelClipping: 0.25 | ||
| m_Anamorphism: 0 | ||
| m_SensorSize: {x: 36, y: 24} | ||
| m_LensShift: {x: 0, y: 0} | ||
| m_NormalizedViewPortRect: | ||
| serializedVersion: 2 | ||
| x: 0 | ||
| y: 0 | ||
| width: 1 | ||
| height: 1 | ||
| near clip plane: 0.2 | ||
| far clip plane: 10 | ||
| field of view: 53.400234 | ||
| orthographic: 0 | ||
| orthographic size: 5.056125 | ||
| m_Depth: 0 | ||
| m_CullingMask: | ||
| serializedVersion: 2 | ||
| m_Bits: 87 | ||
| m_RenderingPath: -1 | ||
| m_TargetTexture: {fileID: 0} | ||
| m_TargetDisplay: 0 | ||
| m_TargetEye: 0 | ||
| m_HDR: 1 | ||
| m_AllowMSAA: 0 | ||
| m_AllowDynamicResolution: 0 | ||
| m_ForceIntoRT: 0 | ||
| m_OcclusionCulling: 0 | ||
| m_StereoConvergence: 10 | ||
| m_StereoSeparation: 0.022 | ||
| --- !u!81 &4273087511613948295 |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Déplacer le composant 'Camera' de 'Main Camera' vers 'Chrono'
Le composant 'Camera' est actuellement attaché au GameObject 'Main Camera' (lignes 924-974). Étant donné que 'Chrono' semble remplacer 'Main Camera', il serait préférable de déplacer le composant 'Camera' vers 'Chrono' pour maintenir les fonctionnalités de la caméra dans votre scène.
Pour ce faire :
- Supprimez le composant 'Camera' de 'Main Camera'.
- Ajoutez un composant 'Camera' à 'Chrono' avec les mêmes paramètres que précédemment.
| AudioListener: | ||
| m_ObjectHideFlags: 0 | ||
| m_CorrespondingSourceObject: {fileID: 0} | ||
| m_PrefabInstance: {fileID: 0} | ||
| m_PrefabAsset: {fileID: 0} | ||
| m_GameObject: {fileID: 4190906850344886629} | ||
| m_Enabled: 1 | ||
| --- !u!114 &8154041069363273802 |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Déplacer le composant 'AudioListener' vers 'Chrono'
Le composant 'AudioListener' est toujours présent sur 'Main Camera' (lignes 975-982). Pour assurer une gestion audio correcte, envisagez de déplacer 'AudioListener' vers 'Chrono', surtout si 'Main Camera' est destiné à être supprimé.
| m_TagString: Untagged | ||
| m_Icon: {fileID: 0} | ||
| m_NavMeshLayer: 0 | ||
| m_StaticEditorFlags: 2147483647 | ||
| m_StaticEditorFlags: 0 | ||
| m_IsActive: 1 | ||
| --- !u!4 &588703733079249260 | ||
| Transform: | ||
| --- !u!224 &7595830232742396208 |
There was a problem hiding this comment.
💡 Codebase verification
Attention à la duplication du composant Chrono
Le composant 'Chrono' est présent à la fois dans le prefab 'Main Camera' et dans 'LifeCanvas'. Pour éviter toute confusion ou conflit potentiel, il est recommandé de :
- Supprimer le composant Chrono du prefab 'Main Camera' puisqu'il est déjà géré par le prefab 'LifeCanvas'
- Mettre à jour toutes les références pour pointer vers le Chrono du LifeCanvas
🔗 Analysis chain
Vérifier la présence simultanée de 'Main Camera' et 'Chrono' dans le prefab
Il semble que le GameObject 'Main Camera' (lignes 901-907) existe toujours dans le prefab en plus de 'Chrono' (lignes 583-588). Pour éviter des conflits ou des comportements inattendus, assurez-vous que 'Main Camera' n'est plus nécessaire et envisagez de le supprimer si c'est le cas.
Pour vérifier s'il reste des références à 'Main Camera' dans le projet, vous pouvez exécuter le script suivant :
Let me generate additional scripts to check for any dependencies or relationships between 'Main Camera' and 'Chrono' in the prefab:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description : Recherche des références à 'Main Camera' dans le projet.
# Test : Rechercher les occurrences de 'Main Camera' dans les fichiers de scène et de script.
rg 'Main Camera' -t yaml -g '*.unity' -g '*.prefab'
rg 'Main Camera' -t cs -g '*.cs'
Length of output: 3834
Script:
#!/bin/bash
# Vérifier le contenu du prefab Main Camera pour comprendre la relation avec Chrono
cat "Assets/Prefabs/Main Camera.prefab"
# Rechercher des références spécifiques à Chrono
rg "Chrono" -t yaml -g "*.prefab" -g "*.unity"
Length of output: 61019
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Outside diff range and nitpick comments (2)
Assets/Scripts/Map Control/DoorSystem.cs (1)
Line range hint
26-64: Attention à la gestion des ressources dans OnTriggerEnter2DLa méthode est assez longue et gère plusieurs responsabilités. Considérez de :
- Extraire la logique de nettoyage des pièges dans une méthode séparée
- Ajouter des commentaires pour expliquer la logique du corridor X7
+ private void CleanupTraps() + { + GameObject[] traps = GameObject.FindGameObjectsWithTag("trap"); + if (traps == null) + { + Debug.Log("Aucun piège trouvé"); + return; + } + foreach (GameObject trap in traps) + { + Destroy(trap); + } + }Assets/Scripts/UI/PlayerHealth.cs (1)
17-19: Ajoutez une documentation pour les champs importantsLes nouveaux champs
clientSocketetdeadCanvasmanquent de documentation expliquant leur rôle dans le système de mort.+ /// <summary> + /// Socket client pour la communication réseau lors de la mort du joueur + /// </summary> private SocketIOUnity clientSocket; + /// <summary> + /// Canvas affiché lors de la mort du joueur + /// </summary> public GameObject deadCanvas;
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
- Assets/Scripts/Map Control/DoorSystem.cs (1 hunks)
- Assets/Scripts/UI/PlayerHealth.cs (4 hunks)
🔇 Additional comments (2)
Assets/Scripts/Map Control/DoorSystem.cs (2)
68-71: Bon changement de visibilité pour SocketEmitter !La modification de la visibilité de la méthode en
privateest appropriée car elle n'est utilisée qu'en interne dans la classe.
Line range hint
16-24: Suggestion : Vérifier la connexion socket au démarrageIl serait judicieux de vérifier si le socket est correctement initialisé dans la méthode Start.
| private async void SocketEmitter() | ||
| { | ||
| await clientSocket.EmitAsync("rooms:corridor"); | ||
| } |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Suggestion : Ajouter une gestion d'erreur pour l'émission de socket
Il serait prudent d'ajouter une gestion des exceptions pour l'appel socket asynchrone.
- private async void SocketEmitter()
- {
- await clientSocket.EmitAsync("rooms:corridor");
- }
+ private async void SocketEmitter()
+ {
+ try {
+ await clientSocket.EmitAsync("rooms:corridor");
+ } catch (System.Exception e) {
+ Debug.LogError($"Erreur lors de l'émission du socket : {e.Message}");
+ }
+ }📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private async void SocketEmitter() | |
| { | |
| await clientSocket.EmitAsync("rooms:corridor"); | |
| } | |
| private async void SocketEmitter() | |
| { | |
| try { | |
| await clientSocket.EmitAsync("rooms:corridor"); | |
| } catch (System.Exception e) { | |
| Debug.LogError($"Erreur lors de l'émission du socket : {e.Message}"); | |
| } | |
| } |
| void Die() | ||
| { | ||
| SocketEmitter(); | ||
| if (deadCanvas != null) | ||
| { | ||
| deadCanvas.SetActive(true); | ||
| } | ||
| GetComponent<PlayerMovement>().enabled = false; | ||
| } |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Améliorer le retour utilisateur lors de la mort
La méthode Die pourrait bénéficier d'effets visuels et sonores supplémentaires.
void Die()
{
+ // Effet visuel de mort
+ StartCoroutine(DeathEffect());
+
SocketEmitter();
if (deadCanvas != null)
{
- deadCanvas.SetActive(true);
+ // Animation de fade-in du canvas
+ StartCoroutine(FadeInDeathCanvas());
}
GetComponent<PlayerMovement>().enabled = false;
+ // Désactiver les autres composants du joueur
+ GetComponent<Collider2D>().enabled = false;
+ // Jouer un son de mort
+ AudioSource.PlayClipAtPoint(deathSound, transform.position);
}
+ private IEnumerator DeathEffect()
+ {
+ // Effet de flash rouge
+ SpriteRenderer renderer = GetComponent<SpriteRenderer>();
+ Color originalColor = renderer.color;
+ renderer.color = Color.red;
+ yield return new WaitForSeconds(0.1f);
+ renderer.color = originalColor;
+ }Committable suggestion was skipped due to low confidence.
| public void ReturnToMenu() | ||
| { | ||
| GameObject socket = GameObject.FindWithTag("Temporary"); | ||
| if (socket != null) Destroy(socket.gameObject); | ||
| SceneManager.LoadScene("Menu"); | ||
| } |
There was a problem hiding this comment.
Sécuriser la transition vers le menu
La méthode ReturnToMenu devrait gérer les cas d'erreur et assurer une transition fluide.
public void ReturnToMenu()
{
+ try
+ {
GameObject socket = GameObject.FindWithTag("Temporary");
- if (socket != null) Destroy(socket.gameObject);
+ if (socket != null)
+ {
+ Destroy(socket.gameObject);
+ }
+
+ // Transition fluide
+ StartCoroutine(LoadMenuWithFade());
- SceneManager.LoadScene("Menu");
+ }
+ catch (System.Exception e)
+ {
+ Debug.LogError($"Erreur lors du retour au menu: {e.Message}");
+ // Chargement de secours
+ SceneManager.LoadScene("Menu");
+ }
}
+ private IEnumerator LoadMenuWithFade()
+ {
+ // Fade out
+ yield return StartCoroutine(FadeScreen(1f));
+ // Chargement de la scène
+ SceneManager.LoadScene("Menu");
+ }Committable suggestion was skipped due to low confidence.
| clientSocket = SocketManager.Instance.ClientSocket; | ||
| currentHealth = maxHealth; | ||
| UpdateHealthBar(); | ||
|
|
||
| if (deadCanvas != null) deadCanvas.SetActive(false); |
There was a problem hiding this comment.
Améliorer la robustesse de l'initialisation
L'initialisation manque de vérifications importantes.
void Start()
{
- clientSocket = SocketManager.Instance.ClientSocket;
+ if (SocketManager.Instance == null)
+ {
+ Debug.LogError("SocketManager.Instance est null. Assurez-vous qu'il est présent dans la scène.");
+ return;
+ }
+ clientSocket = SocketManager.Instance.ClientSocket;
currentHealth = maxHealth;
UpdateHealthBar();
- if (deadCanvas != null) deadCanvas.SetActive(false);
+ if (deadCanvas == null)
+ {
+ Debug.LogWarning("deadCanvas n'est pas assigné dans l'inspecteur!");
+ }
+ else
+ {
+ deadCanvas.SetActive(false);
+ }
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| clientSocket = SocketManager.Instance.ClientSocket; | |
| currentHealth = maxHealth; | |
| UpdateHealthBar(); | |
| if (deadCanvas != null) deadCanvas.SetActive(false); | |
| if (SocketManager.Instance == null) | |
| { | |
| Debug.LogError("SocketManager.Instance est null. Assurez-vous qu'il est présent dans la scène."); | |
| return; | |
| } | |
| clientSocket = SocketManager.Instance.ClientSocket; | |
| currentHealth = maxHealth; | |
| UpdateHealthBar(); | |
| if (deadCanvas == null) | |
| { | |
| Debug.LogWarning("deadCanvas n'est pas assigné dans l'inspecteur!"); | |
| } | |
| else | |
| { | |
| deadCanvas.SetActive(false); | |
| } |
| private async void SocketEmitter() | ||
| { | ||
| await clientSocket.EmitAsync("rooms:end"); | ||
| } |
There was a problem hiding this comment.
Gérer les erreurs de communication réseau
La méthode SocketEmitter devrait gérer les erreurs potentielles lors de l'émission.
- private async void SocketEmitter()
+ private async void SocketEmitter()
{
- await clientSocket.EmitAsync("rooms:end");
+ try
+ {
+ if (clientSocket != null)
+ {
+ await clientSocket.EmitAsync("rooms:end");
+ }
+ else
+ {
+ Debug.LogError("clientSocket est null lors de l'émission de l'événement de mort");
+ }
+ }
+ catch (System.Exception e)
+ {
+ Debug.LogError($"Erreur lors de l'émission de l'événement de mort: {e.Message}");
+ }
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private async void SocketEmitter() | |
| { | |
| await clientSocket.EmitAsync("rooms:end"); | |
| } | |
| private async void SocketEmitter() | |
| { | |
| try | |
| { | |
| if (clientSocket != null) | |
| { | |
| await clientSocket.EmitAsync("rooms:end"); | |
| } | |
| else | |
| { | |
| Debug.LogError("clientSocket est null lors de l'émission de l'événement de mort"); | |
| } | |
| } | |
| catch (System.Exception e) | |
| { | |
| Debug.LogError($"Erreur lors de l'émission de l'événement de mort: {e.Message}"); | |
| } | |
| } |
* feat: add death system * chore: add socket emiter for end game * fix: fix heart generator if develop don't have socket * fix: remove crossbow
* Chore/shadering map (#24) * technical : add shadering and post-traitement system, adapt asset and sprite for using this * feat: update Room2 * feat: Link the chat to the back sockets (#25) * feat: Link chat to backend (#26) * feat: Link the chat to the back sockets * fix: Move the dialogue script outside the canvas to avoid it to be disabled while the canvas is going to be disabled * fix: remove dual camera * fix: fix crossbow system (#27) * fix: add request to back (room name) * fix: Revert trap manager * hotfix: Fix things that weren't working * feat: RPS (#29) * feat : add multiple option and itemscollider for RockPaperCissor * feat: Link Rock Paper Scissors to backend socket * feat: Link RockPaperScissors, but display missing --------- Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com> * hotfix: Change RPS size to match the screen * fix: fix Crossbow up sprite and arrow system, change color pixel dead font * chore: change EmptyRoom2 * feat: add death system (#30) * feat: add death system * chore: add socket emiter for end game * fix: fix heart generator if develop don't have socket * fix: remove crossbow * feature: add audio system and fix crossbow with sound (#32) Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com> * chore: Fix env for windows (#31) * feat: add death system * chore: add socket emiter for end game * fix: fix heart generator if develop don't have socket * fix: remove crossbow * chore: try to fix .env for Windows and Unity * fix: Quick Fix in production * fix: QuickFx PlayerHealth fail merge * Fix: fix Room * feat: Adapt Waiting Room (#33) * feat: Instantiate waiting room when arriving in the corridor 0 * fix: Add a flag to change message one time and avoid repetition of it * feat: Add the creation of the room when instanciating the WaitingRoom process * feat: Try to remove the Door collider before game has started * fix: fix lock and door system, add waiting room, last fix for dialogue system for pity --------- Co-authored-by: Thomlam <lamiablethomas@gmail.com> * fix: rename bear_trap to prefab * fix: quick fix prefab room for crossbow * fix: quickfix for bear_trap * feat: Add room deletion when disconnection from a game * Wip/streaming back (#35) * feat: add streaming system with recording and sending frame jpeg * feat: add config * feat: first try to add socketIOSystem * feat: Add the right socket * feature : deploy for 60fps --------- Co-authored-by: AyakorK <guillaume.moret@yahoo.com> * hotfix: Get rid of a Debug * fix: fix arrows component and stade 24 fps to streaming * fix: Global rendering fixes (#36) * fix: Update corridor displays + additions of colliders to avoid glitching * fix: Add a door transition lock * feat: Add collision to the walls in the room * fix: Fix collisions of the hole * fix: Fix glitched hitboxes * fix: Destory arrows when going to an other room --------- Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com> Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Summary by CodeRabbit
Nouvelles Fonctionnalités
LifeCanvas,DialogueSystem, etDeathPanel.ReturnToMenupour retourner au menu principal.Corrections de Bugs
Refactorisation
Main Camera, renommé enChrono, et mise à jour de sa hiérarchie.GameOverManager, sans logique fonctionnelle.Changements dans la Scène
EmptyRoom_2avec ajout et suppression de plusieurs objets.