Unity-PythonNet
Development Environment
- Windows
- Unity6000.3.5f1 (.NET Framework or both .NET Standard 2.1 and Microsoft.CSharp is required at Api Compatibility Level)
- Python.NET 3.0.5
- Python Embeddable Package 3.11.3
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.PythonPathis not applied when changing a differentPythonEngine.PythonPathafter callingPythonEngine.Initialize()/PythonEngine.Shutdown().- Restart Unity if you want to set a different
PythonEngine.PythonPath.
- Restart Unity if you want to set a different
On this page
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
