{"id":15035703,"url":"https://github.com/elisiomassaqui/realtimecodeeditor","last_synced_at":"2026-02-25T17:41:33.502Z","repository":{"id":243926515,"uuid":"813801678","full_name":"elisioMassaqui/RealTimeCodeEditor","owner":"elisioMassaqui","description":"Editor de código em tempo de execução in game na unity","archived":false,"fork":false,"pushed_at":"2024-06-11T19:32:46.000Z","size":42771,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-19T06:48:01.297Z","etag":null,"topics":["2d","asp-net","csharp-code","dotnet-framework","inputfield","rosyln","sintax","ui-design","unity2d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elisioMassaqui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-11T19:13:17.000Z","updated_at":"2024-06-11T19:32:49.000Z","dependencies_parsed_at":"2024-06-12T04:24:53.200Z","dependency_job_id":null,"html_url":"https://github.com/elisioMassaqui/RealTimeCodeEditor","commit_stats":null,"previous_names":["elisiomassaqui/realtimecodeeditor"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisioMassaqui%2FRealTimeCodeEditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisioMassaqui%2FRealTimeCodeEditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisioMassaqui%2FRealTimeCodeEditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisioMassaqui%2FRealTimeCodeEditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elisioMassaqui","download_url":"https://codeload.github.com/elisioMassaqui/RealTimeCodeEditor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234757154,"owners_count":18881936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d","asp-net","csharp-code","dotnet-framework","inputfield","rosyln","sintax","ui-design","unity2d"],"created_at":"2024-09-24T20:29:14.269Z","updated_at":"2025-09-30T17:30:56.400Z","avatar_url":"https://github.com/elisioMassaqui.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Resumo do Script CodeEditor\n\nO script CodeEditor é parte de um projeto Unity que utiliza Roslyn para permitir a edição, compilação e execução dinâmica de código C# diretamente no jogo. Esse editor de código in-game facilita a criação e modificação de scripts em tempo real, proporcionando uma interação mais ágil e iterativa.\n\n\u003cimg src=\"https://github.com/elisioMassaqui/RealTimeCodeEditor/blob/master/Anota%C3%A7%C3%A3o%202024-06-11%20202519.png\"\u003e\n\nComponentes Principais:\nBibliotecas Utilizadas:\n\nUnity:\nUnityEngine, UnityEngine.UI, TextMeshPro (para elementos da interface do usuário).\nRoslyn:\nMicrosoft.CodeAnalysis, Microsoft.CodeAnalysis.CSharp (para compilação de código C#).\nOutras:\nSystem.Reflection, System.Text, System.Linq, System.IO (para manipulação e compilação de código em tempo de execução).\nAtributos Públicos:\n\nTMP_InputField codeInputField: Campo de entrada de texto para o código.\nButton compileButton, Button runAgainButton: Botões para compilar e executar o código novamente.\nTextMeshProUGUI outputText: Campo de texto para exibir saídas ou mensagens de erro.\nMyScript myScript: Referência a outro script MyScript.\nMétodos e Funcionalidades:\n\nUpdate: Chama instanciarBolinha do MyScript quando a tecla de espaço é pressionada.\nexemplo: Inicializa myScript.\nAwake: Inicializa o InputField com um código padrão e compila esse código.\nStart: Configura os botões para chamar CompileAndRunCode e RunCompiledCode.\nCompileAndRunCode: Compila e executa o código inserido no InputField, atualizando a interface com mensagens de erro ou sucesso.\nRunCompiledCode: Executa o método Run do script compilado e atualiza a interface com a mensagem retornada.\nCompileAssembly: Compila o código C# dinamicamente utilizando Roslyn e retorna um Assembly.\nCódigo Padrão:\n\n```csharp\n\nprivate string defaultCode = @\"\nusing UnityEngine;\n\npublic class DynamicScript : MonoBehaviour\n{\n    public string message;\n\n    public void Run()\n    {\n        message = \"\"Hello, Universe!\"\";\n\n        MyScript myScript = FindObjectOfType\u003cMyScript\u003e();\n        if (myScript != null)\n        {\n            myScript.myVariable = \"\"World!\"\";\n            myScript.instanciarBolinha();\n        }\n        else\n        {\n            Debug.LogError(\"\"MyScript não encontrado na cena!\"\");\n        }\n    }\n\n    public string GetMessage()\n    {\n        return message;\n    }\n}\";\n```\n\nEste código padrão fornece um exemplo básico de script que pode ser modificado e executado pelo usuário.\n\nIntegração com Roslyn:\nO método CompileAssembly utiliza Roslyn para compilar o código C# dinamicamente. Ele cria uma árvore de sintaxe (SyntaxTree) a partir do código fornecido e adiciona as referências necessárias, incluindo as específicas do Unity. A compilação é realizada em memória, e se bem-sucedida, um Assembly é carregado para execução.\n\nUso:\nInicialização:\n\nO campo de entrada de texto (codeInputField) é preenchido com um código padrão ao iniciar.\nA compilação inicial é realizada durante o Awake.\nInteração:\n\nO usuário pode editar o código no campo de entrada e clicar em \"Compile\" para compilar e executar o código.\nO botão \"Run Again\" permite a reexecução do código compilado sem necessidade de recompilação, útil para testes rápidos.\nEste editor de código in-game oferece uma maneira poderosa e flexível para desenvolver e testar scripts diretamente no ambiente Unity, acelerando o processo de desenvolvimento e permitindo iterações rápidas.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felisiomassaqui%2Frealtimecodeeditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felisiomassaqui%2Frealtimecodeeditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felisiomassaqui%2Frealtimecodeeditor/lists"}