Skip to content

Unity-based classes for detecting and mitigating unsafe patterns in AI-generated code before execution. This project leverages Roslyn analyzers and regular expressions to identify and clean some potentially harmful code to ensure a safe runtime environment in games.

Notifications You must be signed in to change notification settings

BlueInfinity1/UnityRoslynScriptProcessing

Repository files navigation

Having a Unity GameObject call RoslynTest.TestScriptProcessing() will start processing of the script by removing potentially unsafe operations that we don't want to have in AI-generated code.

Original Script:

using System;
using System.Net.Http;
using System.IO;
using System.Diagnostics;
using System.Threading;
using UnityEngine;

public class UnsafeExample
{            
    public void PauseExecution()
    {
        Thread.Sleep(1000); // Unsafe: Freezes the thread for 1 second
    }

    public void FileOperations()
    {
        File.WriteAllText("data.txt", "Some data"); // Unsafe: File access
        var content = File.ReadAllText("data.txt"); // Unsafe: File access
    }

    public void StartProcess()
    {
        Process.Start("notepad.exe"); // Unsafe: External process call
    }

    public void BlockUserInput()
    {
        Console.ReadLine(); // Unsafe: Blocking call for user input
    }

    public void ExitApplication()
    {
        Environment.Exit(0); // Unsafe: Abruptly terminates the application
    }

    public void ForceGarbageCollection()
    {
        GC.Collect(); // Unsafe: Forcing garbage collection
    }

    public string Execute()
    {
        PauseExecution();
        FileOperations();
        StartProcess();
        BlockUserInput();
        ExitApplication();
        ForceGarbageCollection();
        return "All executions performed!";
    }
}

Cleaned Script:

using System;
using System.Net.Http;
using System.IO;
using System.Diagnostics;
using System.Threading;
using UnityEngine;

public class UnsafeExample
{            
    public void PauseExecution()
    {
    }

    public void FileOperations()
    {
    }

    public void StartProcess()
    {
    }

    public void BlockUserInput()
    {
    }

    public void ExitApplication()
    {
    }

    public void ForceGarbageCollection()
    {
    }

    public string Execute()
    {
        PauseExecution();
        FileOperations();
        StartProcess();
        BlockUserInput();
        ExitApplication();
        ForceGarbageCollection();
        return "All executions performed!";
    }
}

About

Unity-based classes for detecting and mitigating unsafe patterns in AI-generated code before execution. This project leverages Roslyn analyzers and regular expressions to identify and clean some potentially harmful code to ensure a safe runtime environment in games.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages