Windows  and Ubuntu

Windows

Unity的工程直接调用 python脚本,然后输出相应的结果。

1 Unity 工程和脚本

新建一个工程,并添加脚本LoadPython.cs

using System.Collections;
using System;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;  //需要添加这个名词空间,调用DataReceivedEventArg public class LoadPython : MonoBehaviour
{string sArguments = @"UnityLoad.py";//这里是python的文件名字// Use this for initializationvoid Start(){RunPythonScript(sArguments, "-u");}// Update is called once per framevoid Update(){RunPythonScript(sArguments, "-u");}public static void RunPythonScript(string sArgName, string args = ""){Process p = new Process();//python脚本的路径string path = @"F:\pythonBuffer\" + sArgName;string sArguments = path;//(注意:用的话需要换成自己的)没有配环境变量的话,可以像我这样写python.exe的绝对路径//(用的话需要换成自己的)。如果配了,直接写"python.exe"即可p.StartInfo.FileName = @"python.exe";//p.StartInfo.FileName = @"C:\Program Files\Python35\python.exe";// sArguments为python脚本的路径   python值的传递路线strArr[]->teps->sigstr->sArguments //在python中用sys.argv[ ]使用该参数p.StartInfo.UseShellExecute = false;p.StartInfo.Arguments = sArguments; p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;p.Start();p.BeginOutputReadLine();p.OutputDataReceived += new DataReceivedEventHandler (Out_RecvData);Console.ReadLine();p.WaitForExit();}static void Out_RecvData(object sender, DataReceivedEventArgs e){if (!string.IsNullOrEmpty(e.Data)) {UnityEngine.Debug.Log (e.Data);}}}

2 新建python脚本 UnityLoad.py

# -*- coding: utf-8 -*-PoemName = "杜甫《江畔独步寻花·其六》"
PoemTest = """
黄四娘家花满蹊,千朵万朵压枝低。
留连戏蝶时时舞,自在娇莺恰恰啼。
"""print(PoemName)
print(PoemTest)MottoEn = "A warm smile is the universal language of kindness."
MottoCh = "温暖的微笑是表示善意的通用语言。"print(MottoEn)
print(MottoCh)

3  运行unity调用

Ubuntu

1 Unity 工程和脚本

新建一个工程,并添加脚本RunPython.cs

using System.Collections;
using System;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;  //需要添加这个名词空间,调用DataReceivedEventArg public class RunPython : MonoBehaviour
{string sArguments = @"UnityPython.py";//这里是python的文件名字// Use this for initializationvoid Start(){RunPythonScript(sArguments, "-u");}// Update is called once per framevoid Update(){RunPythonScript(sArguments, "-u");}public static void RunPythonScript(string sArgName, string args = ""){Process p = new Process();//python脚本的路径//string path = @"F:\BUFFER\PycharmBuffer\" + sArgName; string path = @"/home/michael/BUFFER/PycharmBuffer/" + sArgName;string sArguments = path;//文件目录的查询参考 https://blog.csdn.net/moonlightpeng/article/details/116195087?spm=1001.2014.3001.5501print("hello python");//(注意:用的话需要换成自己的)没有配环境变量的话,可以像我这样写python.exe的绝对路径//(用的话需要换成自己的)。如果配了,直接写"python.exe"即可p.StartInfo.FileName = @"/home/michael/.conda/envs/PVNet/bin/python";//注意Ubuntu系统pyhton后缀没有.exe//p.StartInfo.FileName = @"C:\Program Files\Python35\python.exe";// sArguments为python脚本的路径   python值的传递路线strArr[]->teps->sigstr->sArguments //在python中用sys.argv[ ]使用该参数p.StartInfo.UseShellExecute = false;p.StartInfo.Arguments = sArguments; p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;p.Start();p.BeginOutputReadLine();p.OutputDataReceived += new DataReceivedEventHandler (Out_RecvData);Console.ReadLine();p.WaitForExit();}static void Out_RecvData(object sender, DataReceivedEventArgs e){if (!string.IsNullOrEmpty(e.Data)) {UnityEngine.Debug.Log (e.Data);}}}

2 新建python脚本 UnityPython.py

# -*- coding: utf-8 -*-PoemName = "杜甫《客至》"
PoemTest = """
舍南舍北皆春水,但见群鸥日日来。
花径不曾缘客扫,蓬门今始为君开。
盘飧市远无兼味,樽酒家贫只旧醅。
肯于邻翁相对饮,隔离呼取尽馀杯。
"""print(PoemName)
print(PoemTest)MottoEn = "If you can't fly then run, if you can't run then walk, if you can't walk then crawl" \"but whatever you do you have to keep moving forward."
MottoCh = "如果不能飞,那就跑;如果跑不动,那就走;实在走不动了,那就爬。无论做什么,你都要勇往直前。"print(MottoEn)
print(MottoCh)

3  运行unity调用

注意事项:加载的python脚本名要写对,如果写错了竟然不会报错,仔细一点。

传参数通过unity到python参考

c#调用python的四种方法

Unity直接调用Python脚本相关推荐

  1. python c#_【分享】C# 调用 Python 脚本, 与 Python 调用 C# 类库

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C# 调用 Python 脚本 操作步骤 1.创建一个控制台程序. O0101_DotNetCallPython. 2.管理 Nuget 程序包,搜索 I ...

  2. Java调用python脚本

    Java调用python脚本 最近也是刚开始学python,所以这里写了一个简单的小方法用Java来调用python脚本.后期再进行更新. 1.Java启动程序的方法 在Java中提供了两种方法来启动 ...

  3. c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法

    c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法 时间:2017-05-09 12:32:06阅读:234评论 ...

  4. excel调用python编程-如何在excel中调用python脚本

    如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...

  5. python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...

    最近工作中需要干这个事,网上搜了搜资料,改了改,基本是这样 建立一个控制台应用程序: 比如 加入我在命令行直接调用python脚本,命令为 y安装python后,添加环境变量,path下面,加入路径. ...

  6. linux下java调用python脚本,java - 在Linux Terminal中以编程方式从Java调用python脚本 - 堆栈内存溢出...

    我正在开发一个Java应用程序,用于检查源文件中的补丁程序(是否存在). 用于检测补丁程序更改的核心逻辑位于python脚本[titled'patch.py​​']中,并且我的Java应用程序与此Py ...

  7. 【Python】如何在Excel中调用Python脚本,实现数据自动化处理

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...

  8. java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu

    最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把pytho ...

  9. java 调用python脚本过程_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  10. python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值

    在Java程序中有时需要调用Python的程序,这时可以使用一般的PyFunction来调用python的函数并获得返回值,但是采用这种方法有可能出现一些莫名其妙的错误,比如ImportError.在 ...

最新文章

  1. [云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发
  2. 20175212 《Java程序设计》第2周学习总结
  3. 编程之美-2.4 1的数目
  4. java 停止定时器_实例助解java定时器设置及停止的方法
  5. 微信小程序图片转换成文字_文字工作者必备 微信小程序图片转文字
  6. win10计算机名访问win7,实现Win10与Win7局域网共享,教你这招
  7. NVIDIA详细解读游戏中DX9与DX11差别
  8. 饥饿游戏[The Hunger Games]
  9. UNICODE与 UTF-8的转换详解
  10. java爬虫系列(三)——漫画网站爬取实战
  11. 【官方教程】ChatGLM-6B 微调,最低只需 7GB 显存
  12. 年产6000t乳制品工厂设计
  13. 最快的分布式关系型数据库MEMSQL
  14. Mac OSX中设置路由
  15. iOS 常用第三方库及插件
  16. 二、MMsegmentation 配置教程+训练教程+模型测试( 服务器)
  17. 【正点原子MP157连载】 第十章 U-boot使用-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  18. 微信小程序-提交表单成功弹窗提示
  19. 计算机组成原理二:系统总线——知识点和知识结构图
  20. ubuntu 18,问题总结

热门文章

  1. java 构造函数嵌套_java – spring – 构造函数注入和覆盖嵌套bean的父定义
  2. Java迭代器的一致_ArrayList中迭代器(Iterator)实现
  3. Matlab 嵌套传递函数简化_MATLAB的数据处理方法及图形绘制详解
  4. 巨人java生鲜app下载_Java生鲜电商平台-生鲜电商平台SSO(单点登陆)技术方案(小程序/APP)...
  5. JS魔法堂:LINK元素深入详解
  6. 用shc加密shell脚本
  7. DWR3.0 文件上传
  8. 路由器DHCP配置及中继配置
  9. Linux笔记17.数据完整性检测工具
  10. sql 2005 中分页