GitHunt

Unity-PythonNet

Development Environment

What is this?

This is a sample project that integrates Unity and Python.NET. Pressing the Plot button will display an image of a graph drawn using matplotlib in Python.

Project Structure

+ Assets/
  + Scenes/
    + SampleScene.unity          : Main scene using Unity UI
    + MainView.unity             : Main scene uning UI Toolkit
  + Scripts/
    + PythonLifeCycle.cs         : Python.NET initializer
    + PlotRandom.cs              : Call python script from C# using Python.NET for Unity UI
    + UIEventHandler.cs          : Call python script from C# using Python.NET for UI Toolkit
  + Plugins/
    + Microsoft.CSharp.dll       : Need for .NET Standard 2.1
  + StreamingAssets/
    + python-3.11.3-embed-amd64/ : python runtime
    + myproject/
      + plot_random.py           : python script for graph plot
      + requirements.txt         : a list of items to be installed using pip install

How to add python packages

cd Assets\StreamingAssets\python-3.11.3-embed-amd64\
.\Scripts\pip.exe install matplotlib
.\Scripts\pip.exe freeze > myproject\requirements.txt

Editor Settings: Enter Play Mode Options

Both Domain Reload enabled and disabled are supported with fast Play/Stop.

Domain Reload Enabled

Pros Cons
Fast Play mode stop Slightly slower Play mode start
Python code changes are reflected -
Clean Python state on each Play -

Domain Reload Disabled

Pros Cons
Fast Play mode start Python global state is preserved
Fast Play mode stop -
Python code changes are reflected (via module reload) -

Settings: Edit → Project Settings → Editor → Enter Play Mode Options

Known Issues

  • PythonEngine.PythonPath is not applied when changing a different PythonEngine.PythonPath after calling PythonEngine.Initialize() / PythonEngine.Shutdown().
    • Restart Unity if you want to set a different PythonEngine.PythonPath.

Languages

Python97.5%C1.3%ShaderLab0.3%C++0.3%Cython0.3%JavaScript0.1%Fortran0.1%HLSL0.1%C#0.1%Jupyter Notebook0.1%CSS0.0%Roff0.0%HTML0.0%Go Template0.0%Lua0.0%

Contributors

MIT License
Created April 9, 2023
Updated January 23, 2026
shiena/Unity-PythonNet | GitHunt