Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sho7noka/unison
Python.Passing is a python game programming solution for C# (Unity, Godot and .NET) extends for pythonnet
https://github.com/sho7noka/unison
dotnet godot python pythonnet unity
Last synced: 13 days ago
JSON representation
Python.Passing is a python game programming solution for C# (Unity, Godot and .NET) extends for pythonnet
- Host: GitHub
- URL: https://github.com/sho7noka/unison
- Owner: sho7noka
- License: other
- Created: 2020-04-03T02:48:18.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-06-03T05:34:22.000Z (over 4 years ago)
- Last Synced: 2023-10-19T17:59:21.574Z (about 1 year ago)
- Topics: dotnet, godot, python, pythonnet, unity
- Language: C#
- Homepage:
- Size: 186 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Unisonus
Unisonus is a python game development solution for C# (Unity, Godot and .NET)
which extend on [pythonnet](http://pythonnet.github.io/).## About
In a C# scripted game engine, the amount of friction between programmers and artists is significant.By brokering Python, we provide artists and game designers with the ability to solve complex game development problems.
For more general uses of tables extracted from databases and spreadsheets, such as serialization, ORM, and dynamic proxies,
you can use Consider [T4](https://docs.microsoft.com/ja-jp/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2019) or [LLBLGen](https://www.llblgen.com/).
## Installation
* pypi: `pip install clr_ext`
* Package Manager : add the following line `https://github.com/yasirkula/UnityIngameDebugConsole.git`
* nuget: `Install-Package python -Version 3.9.0-b1`Packages/manifest.json for Unity(optional).[document](https://docs.unity3d.com/Packages/[email protected]/manual/)
```json
{
"dependencies": {
"com.unity.scripting.python": "2.0.1-preview.2",
}
}
```### embeded Client on Lightweight Language
プログラマーがゲームクライアント上でPythonのような軽量スクリプト言語を組み込むと便利な機能に以下のようなものがあります。特に保守期間の長いサービスを提供する上で工数削減を期待できます。
- シーン遷移を含むエディターでのオートゲームプレイとテスト
- アセット作成ツール(Maya, Photoshop等)とネイティブ相互作用
- 持続可能なサービスのためのエンジン内アセットの継続的なメンテナンスインターフェース定義
```c#
using UnityEngine;
using Unison.Extensions;public class TestScript {
[PyRPC("get")]
public static void Get(){
}
}
```RPCサーバの開始
```c#
using UnityEditor;
using Unison;public class EditorPresenter
{
[InitializeOnLoadMethod]
void Start() {
InterPreter.rpcServer("121.0.0.1", 8888);
}
}
```RPCクライアントからアクセス
```python
import clr_ext as clrunity = clr.rpcClient("121.0.0.1", 8888)
unity.Play()
unity.update_scene()
unity.Stop()
```### Sourcecode as a Asset
アーティストが xml,csv,json あるいは独自ファイルフォーマットなどを仲介してComponent Entityを生成するニーズには以下のようなものがあります。インターフェースの設計にもよりますが、プログラマーの工数が見込めない状況において
アセットの細かい挙動を制御する際に便利です。
- シェーダ : マテリアル/パーティクル
- イベント : 物理エンジン/オーディオ/コリジョン
- レベル : 地形、天候、草木
- その他 : サンドボックス、ランタイムコマンドなど```python
import clr_ext.generate as gengen.gen_cs()
```一般におけるコード生成
- リフレクション、ジェネリックのコスト削減, AOT
- データフォーマットのシリアライズ
- ネイティブコードのデータバインドテンプレートを使ったコード生成。ASP.NET、XML Web サービス クライアント プロキシ、コード ウィザード、デザイナー、またはその他のコード出力機構のためのコードを生成します。
動的コンパイル。1 つ以上の言語でのコードのコンパイルをサポートします。ゲーム制作におけるコード生成
- アセットのランタイムパラメーター
- デバッグコマンド、スクリプトエンジン
-イテレーション
# デバッグ
https://github.com/yasirkula/UnityIngameDebugConsole
https://www.stompyrobot.uk/tools/srdebugger/documentation/#console-1
http://sprfield.hatenablog.jp/entry/2017/09/27/115754### ライセンス
[MIT](./License.md)