Integrando Cursor com Unity
Alternativa para integrar o Cursor com a Unity
Como abrir scripts da Unity no Cursor
O Problema
Ao definir o Cursor como editor externo na Unity, ao clicar em um script, o arquivo era aberto, mas não no contexto do projeto. Apenas o arquivo era carregado no Cursor, sem abrir a pasta do projeto.
Para que o Cursor abra corretamente um arquivo no contexto do projeto, é necessário passar nos argumentos tanto o caminho do projeto quanto o caminho do arquivo. O problema é que a Unity não fornece uma variável para o caminho do projeto, apenas para o arquivo.
Solução
Para resolver isso, criei um script PowerShell que recebe o caminho do arquivo como argumento, encontra a pasta do projeto e executa o Cursor com os argumentos corretos.
Criando o Script PowerShell
Crie um arquivo CursorUnityWrapper.ps1 e adicione o seguinte código:
$encodedFilePath = $args -join " "
$decodedPath = [System.Uri]::UnescapeDataString($encodedFilePath)
$assetsIndex = $decodedPath.IndexOf("\Assets\")
if ($assetsIndex -ge 0) {
$projectPath = $decodedPath.Substring(0, $assetsIndex)
} else {
$projectPath = (Get-Location).Path
}
& "C:\Caminho\Para\Cursor.exe" "$projectPath" "$decodedPath"
Importante: Substitua
C:\Caminho\Para\Cursor.exepelo caminho correto do Cursor no seu computador.
Esse script:
- Recebe o caminho do arquivo passado pela Unity.
- Decodifica o caminho para evitar caracteres especiais.
- Encontra a pasta do projeto, assumindo que a pasta
Assetsestá sempre dentro do diretório raiz do projeto Unity. - Executa o Cursor passando tanto a pasta do projeto quanto o arquivo corretamente.
Se o projeto tiver outra pasta chamada Assets, o script pode falhar, mas no geral funciona bem. Nesse caso de falha, poderiamos melhorar o script para ir descendo a hierarquia de pastas e procurando pela pasta Packages, por exemplo, ou algo do tipo.
Configurando na Unity
Agora, configure a Unity para chamar esse script quando abrir um arquivo:
-
Vá em Edit > Preferences > External Tools.
-
No External Script Editor, escolha Browse... e procure o caminho do
powershell.exe. -
No Editor Args, coloque:
-ExecutionPolicy Bypass -File "C:\Caminho\Para\CursorUnityWrapper.ps1" "$(File)"
Importante: Substitua
C:\Caminho\Para\CursorUnityWrapper.ps1pelo caminho correto do script no seu computador.
A flag -ExecutionPolicy Bypass permite que o script seja executado sem restrições de segurança.
Conclusão
Agora, a Unity abrirá os arquivos no Cursor corretamente, carregando todo o projeto junto. Essa solução funciona no Windows, pois usa PowerShell. Se estiver em outro sistema operacional, será necessário adaptar para outro tipo de script.
