Skip to content

Latest commit

 

History

History
53 lines (34 loc) · 1.66 KB

README.md

File metadata and controls

53 lines (34 loc) · 1.66 KB

Use Python with Unity

First you will have to download IronPython dll files and place them into Assets/Plugins directory. unity-python

IronPython requires .NET 4.5, and Unity doesn't like this by default. That's why you will have to change the .NET version by going to Edit --> Project Settings --> Player. Make sure that the Scripting Runtime Version is .NET 4.x (this requires you to restart Unity) and that API Compatibility level is .NET 4.x

Requirements

How to code in Python

Assume you have a small code snippet test.py in Python like this:

import random

class Test():
	def __init__(self, name):
		self.name = name

	def display(self):
		return "Hi, " + self.name

	def random_number(self, start, end):
		return random.randint(start, end)

You can use it from C# like this

var engine = Python.CreateEngine ();
ICollection<string> searchPaths = engine.GetSearchPaths ();

//Path to the folder of greeter.py
searchPaths.Add (Application.dataPath);

//Path to the Python standard library
searchPaths.Add (Application.dataPath + @"\StreamingAssets"  + @"\Lib\");
engine.SetSearchPaths (searchPaths);

dynamic py = engine.ExecuteFile (Application.dataPath + @"\StreamingAssets" + @"\Python\test.py");

dynamic test = py.Test ("Codemaker");
greeting.text = "Greeting: " + test.display ();
randomNumber.text = "Random Number: " + test.random_number (1, 5);

Output

screenshot