From db6b123572ea4be3b82322749b449a8952230cf0 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 9 Mar 2021 03:46:58 -0500 Subject: [PATCH] publish --- README.md | 4 ++-- uniton.dll | Bin 24064 -> 25600 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f74a3b..2e72128 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,12 @@ Uniton is a framework to control the Unity game engine from Python. Here is a th ### Features -- [x] naturally interact with all C# objects, functions, classes +- [x] interact live with all C# objects, functions, classes - [x] full autocomplete and inspection for all C# objects (live coding) - [x] fast, asynchronous execution - [x] precise control over game time - [x] faster-than-real-time rendering and simulation - +- [x] standalone package, no required dependencies ### Install In any Unity project, drop the [uniton.dll](https://github.com/rmst/uniton/raw/main/uniton.dll) into the project's `Assets` directory. diff --git a/uniton.dll b/uniton.dll index 10d859da6e1b4b86b695bc4fbdb04353731c5d5c..c1ab403565eaed6dce98309858256bd984ec4ff1 100644 GIT binary patch literal 25600 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