Comment utiliser Rider pour déboguer le code C# et lua dans Unity

Il est souvent nécessaire de déboguer le code Lua au travail. Avant, j'utilisais VS pour déboguer le code C# et Intellij Idea pour déboguer le code Lua. C'est en fait assez gênant, alors j'ai vérifié et je peux directement utiliser Rider pour déboguer C# et code lua uniformément.

Installation du cavalier :

Téléchargement de Rider : Téléchargez depuis le site officiel de Rider , sélectionnez la version correspondante en fonction de vos besoins, il est recommandé d'utiliser Rider2020.1.0, reportez-vous au lien

Utilisez Rider pour déboguer le code C# :

Ouvrez Unity et réglez-le sur Rider de préférence. Lorsque vous double-cliquez sur un fichier C#, il s'ouvrira automatiquement avec Rider :

Sélectionnez "Attacher à l'éditeur Unity" dans la barre de menu Rider
 :

Avis:

1. Sélectionnez généralement "Attacher à Unity Editor", ne sélectionnez pas "Attacher à Unity Editor & Play". Ce dernier démarrera automatiquement Unity après avoir cliqué sur l'icône de débogage - dans certains cas, il n'est pas nécessaire de démarrer automatiquement Unity pour faciliter le débogage. La différence entre les deux est uniquement de savoir s'il faut démarrer automatiquement Unity pendant le débogage, ce qui peut être déterminé en fonction de la situation spécifique

2. Lorsque vous cassez le code C #, vous devez d'abord démarrer le débogage dans Rider, puis exécuter Unity.

L'utilisation du code C# du point d'arrêt Rider est très simple, car vous pouvez associer Unity à Rider après l'installation de Rider, et le débogage du code est très simple.

Utilisez Rider pour déboguer le code Lua :

1. Installez le plugin EmmyLua pour le débogage Lua :

Dans la barre de menu Rider "Fichier -> Paramètres":

2. Configurez LuaDebugger :

Cliquez sur "Modifier la configuration": 

 

Cliquez sur le "+" dans le coin supérieur gauche pour ajouter LuaDebugger
:

Définissez le nom et la méthode de connexion de LuaDebugger :

3.LuaDebugger a deux méthodes de connexion

Méthode 1 : Rider agit comme un serveur - Tcp (Debugger connect IDE)

Rider démarre d'abord le mode débogage, attend que Unity démarre, puis se connecte

1. Selon les paramètres de LuaDebugger, vous devez coller "dbg.tcpConnect" dans le code Lua :

2. Trouvez le fichier initial où C# appelle le code Lua, tel que "GameMain.lua", etc., et ajoutez en haut du code :

Ou vous pouvez également mettre le "dbg.tcpConnect" copié et d'autres codes dans le script lua indépendant "EmmyLuaDebgger.lua", puis "Require EmmyLuaDebugger" dans "GameMain.lua" peut également :

Par exemple, créez un nouveau script "EmmyLuaDebugger.lua" :

-- TCP (Debugger connect IDE)
package.cpath = package.cpath .. ';C:/Users/Frank/AppData/Roaming/JetBrains/Rider2021.3/plugins/EmmyLua/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpConnect('localhost', 9966)

Dans GameMain.lua :

3. Démarrez le mode de débogage Rider :

Après avoir sélectionné "LuaDebugger", cliquez sur le bouton "Debug" pour lancer le débogage :

Ensuite, exécutez Unity, une fois la connexion automatique réussie, le code lua du point d'arrêt peut être exécuté normalement

Méthode 2 : Unity agit comme un serveur - Tcp (débogueur de connexion IDE)

Démarrez d'abord Unity, attendez que Rider se connecte, puis déboguez

1. Copiez le code de connexion "dbg" :

2. Créez un nouveau fichier EmmyLuaDebugger.lua :

--[[-- TCP (Debugger connect IDE)
package.cpath = package.cpath .. ';C:/Users/Frank/AppData/Roaming/JetBrains/Rider2021.3/plugins/EmmyLua/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpConnect('localhost', 9966)]]

-- TCP (IDE connect debugger)
package.cpath = package.cpath .. ';C:/Users/Frank/AppData/Roaming/JetBrains/Rider2021.3/plugins/EmmyLua/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpListen('localhost', 9966)
dbg.waitIDE()                       -- 这句话非常重要,否则无法确定Rider连接状态

 3. Exécutez le script où C# appelle à l'origine le code Lua :

Ajoutez la déclaration suivante dans "GameManager.cs"
 :

PS :

1. Dans ce mode, vous devez ajouter une instruction "dbg.waitIDE()" à la fin de "dbg.tcpListen", sinon, il s'exécutera directement après le démarrage de Unity, et il n'y aura pas "en attente de l'étape de connexion Rider ", il est donc impossible de déboguer normalement les points d'arrêt.

Une fois "dbg.waitIDE()" exécuté, Unity sera bloqué directement. À ce stade, Unity continuera à s'exécuter uniquement après la connexion réussie du Rider.

2. Après avoir exécuté "dbg.waitIDE", Unity sera bloqué directement, attendant que Rider se connecte. À ce stade, vous pouvez ajouter quelques explications pour vous rappeler de démarrer le débogage de Rider, par exemple, ajouter l'affichage "OnGUI" dans "GameManager.cs", et ajouter des méthodes d'implémentation spécifiques plus tard

3. Démarrez Unity, puis démarrez le débogage côté Rider pour casser le code lua normalement

Je suppose que tu aimes

Origine blog.csdn.net/m0_47975736/article/details/124573215
conseillé
Classement