从 unity 运行 python 脚本,以便稍后在我的游戏中使用其输出(文本文件)

2024-03-10

我试图从 unity (C# 脚本)运行一个 python 脚本,以便稍后在我的游戏中使用它的输出,这是一个文本文件,问题是,当我在 unity 中运行 C# 脚本时,没有任何反应(Python 脚本在其上运行良好)自己的)。谁能告诉我我错过了什么? 谢谢。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.IO;
using UnityEngine.UI;
using System.Text.RegularExpressions;
using System.Diagnostics;

using System.Runtime.InteropServices;
public class PyCx : MonoBehaviour {
    public Text Message;
    public GameObject OpenPanel1 = null;
    // Use this for initialization
    void Start () {
        python ();
        read ();
        ShowMessage ();
    }
    public void python(){
        ProcessStartInfo pythonInfo = new ProcessStartInfo ();
        Process python;
        pythonInfo.FileName=@"C:\Users\HP\AppData\Local\Programs\Python\Python36-32\python.exe";
        pythonInfo.Arguments=@"C:\Users\HP\Documents\projet1.pyw";
        pythonInfo.CreateNoWindow = false;
        pythonInfo.UseShellExecute = false;
        python = Process.Start (pythonInfo);
        python.WaitForExit ();
        python.Close ();
    }
    public void read(){
        using (var reader = new StreamReader ("C://Users//HP//Documents//result.txt")) {
            string line = reader.ReadToEnd ();
            Message.text = (line);
        }
    }
    public void ShowMessage(){
        OpenPanel1.SetActive (true);
        Message.IsActive ();
    }
    // Update is called once per frame
    void Update () {

    }
}

您可以尝试使用 IronPython 在代码中直接运行 Python,而不是使用在受控开发环境之外可能不可靠的进程(您不知道您的用户是否安装了 Python 以及哪个版本),IronPython 是一个 Python 解释器对于 CLR,因此它甚至不需要安装 Python 来执行脚本。

要使用它,您需要从以下位置下载编译后的二进制文件http://ironpython.net/download/ http://ironpython.net/download/

然后将所有必需的程序集复制到资源文件夹中:

  • IronPython.dll
  • IronPython.Modules.dll
  • Microsoft.Scripting.Core.dll
  • 微软脚本.dll
  • Microsoft.Scripting.Debugging.dll
  • Microsoft.Scripting.ExtensionAttribute.dll
  • 微软动态.dll

然后你就可以访问Python引擎了,你可以按如下方式初始化它:

PythonEngine engine = new PythonEngine();  
engine.LoadAssembly(Assembly.GetAssembly(typeof(GameObject)));         
engine.ExecuteFile("Project1.py");

您可以在这里查看更多信息:http://ironpython.net/documentation/ http://ironpython.net/documentation/

参考

http://shrigsoc.blogspot.com.es/2016/07/ironpython-and-unity.html http://shrigsoc.blogspot.com.es/2016/07/ironpython-and-unity.html https://forum.unity.com/threads/ironpython-in-unity-a-good-idea.225544/ https://forum.unity.com/threads/ironpython-in-unity-a-good-idea.225544/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 unity 运行 python 脚本,以便稍后在我的游戏中使用其输出(文本文件) 的相关文章

随机推荐

  • 如何在 PHP 中将字符串转换为 JSON 对象

    我从 SQL 查询得到以下结果 Coords Accuracy 65 Latitude 53 277720488429026 Longitude 9 012038778269686 Timestamp Fri Jul 05 2013 11
  • Mongoose:如果元素已存储,则不插入

    我使用 MongoDB 和 Mongoose 与 Express 来存储通过 Twitter API 检索的推文 我想避免保存重复的推文 我正在做类似的事情 TweetsModel find tweet id tweet tweet id
  • 类扩展了 React.Component 不能在 React 中使用 getInitialState

    我正在 React 中尝试 ES6 语法 并编写如下组件 export default class Loginform extends React Component getInitialState return name password
  • TFS2012离线构建服务

    我配置TFS2012团队构建 在配置过程中 构建服务显示状态正在运行 不久之后 可能是 10 秒 构建控制器和构建代理服务就会停止 但在管理构建控制器窗口中 我的 TFS2012 控制器和代理显示可用 因此 我触发了为此控制器配置的构建定义
  • 集群配置中的 Hibernate 搜索?

    我正在开发一个 Java Web 应用程序 使用 JBoss Seam 作为应用程序框架 我想利用 Hibernate Search 提供实体搜索功能 集成进展顺利 距离部署也越来越近了 生产中应用程序的设置将是 2 个 或更多 Tomca
  • iphone:NSMutableURLRequest 返回 MS Word 样式撇号的奇怪字符

    我们使用 XML NSMutableURLRequest 从我们的网站上提取内容 有时它会通过 卷曲 样式的撇号和引号 而不是 提取内容 NSMutableURLRequest 似乎讨厌这些并将它们变成奇怪的 U00e2 U0080 U00
  • 隐式转换为布尔值并与布尔值进行比较

    我正在回答这个问题 https stackoverflow com questions 21350924 explicit bool operator cannot return test initialize bool 关于用户定义的转换
  • LIBCURL 中的简单 telnet 示例 - C++

    我需要在 LIBCURL curl haxx se libcurl C 中查找简单的 TELNET 示例 我搜索了这个网站 但没有找到任何简单的例子 我只需要连接到 TELNET 进行身份验证并发送消息 Thanks 在 libcurl 中
  • 通用应用程序缺少 WriteableBitmap SaveJpeg

    我正在开发一个通用应用程序 在我的共享代码中 我尝试从网络下载图像并将图像保存到 LocalFolder 我正在使用 HttpClient 从用户给定的 url 下载图像并读取客户端响应以保存图像 我正在使用下面的代码进行保存 但无法找到
  • 带有可选逗号和点的有效数字的正则表达式

    我试图只允许使用数字和特殊字符 例如 和 允许出现在我的文本字符串中 为此我尝试了以下代码 var pattern A Za z g var nospecial lt gt g if ev ctrlKey charCode 9 charCo
  • 在 Node.js 中创建 TCP 服务器和 HTTP 服务器之间的 WebSocket

    我创建了一个TCP服务器 using Node js它监听客户端连接 我需要传输数据TCP服务器 to HTTP服务器再次在 Node js 中可能通过网络套接字 套接字 io 但是 我不知道如何创建这样的连接 以便 TCP 服务器能够通过
  • 在 D3.js (V4) 中创建分类折线图

    I m 相对地D3 js 新手 我正在可视化我的 PassengersIn 和 PassengersOut 值总线数据简单 json文件 作为参考 其中一个 JSON 对象如下所示 BusNo 1 Date 21 November 2016
  • 动态添加 Y 轴

    是否可以向 Highstock 图表添加新的 y 轴 我尝试过在选项中添加一个并重新绘制 但这似乎不起作用 HighCharts 的文档包含图表对象的 addAxis 函数 但在 HighStock 中该函数不存在 还有其他选择吗 请看一下
  • TrustZone 监控模式和 IFAR、IFSR、DFAR、DFSR

    The ARM TrustZone 监控模式 http infocenter arm com help index jsp topic com arm doc prd29 genc 009492c CACJBHJA html可以在监视模式下
  • 当前视图控制器不适用于 ios 9

    目前的视图控制器不适用于 ios 9 当我按下按钮时 它没有重定向到当前视图控制器 为什么会出现这种情况 我试过下面的代码 RegistrationViewController viewController UIStoryboard sto
  • 需要将不确定数量的整数从 stdin 读取到数组中

    所以我正在编写一个练习程序 它将整数作为标准输入的输入 将它们加载到数组中 对数组进行排序 然后输出结果 我一直在努力弄清楚 C 中的 IO 是如何工作的 这是我到目前为止所掌握的内容 如果您发现任何问题 有任何建议 请告诉我 理想情况下
  • 使用 TouchHelperCallback 部分和完全滑动 Recyclerview

    我正在尝试使用 api TouchHelperCallback 实现 Recyclerview 的部分和完全滑动 遇到了几个库 例如https github com daimajia AndroidSwipeLayout https git
  • C# 如何用直引号替换微软的智能引号?

    我下面的帖子询问了大引号是什么以及为什么我的应用程序无法使用它们 我现在的问题是当我的程序遇到它们时如何替换它们 我如何在 C 中执行此操作 他们是特殊人物吗 弯引号与方引号的区别 https stackoverflow com quest
  • 在 Angular 中组合路由和查询参数

    在 Angular 中 我必须处理以下格式的路线 sections id filter filter 即我有一个路线参数 id 和查询参数 filter 两个参数都是可选的 因此所有这些路由都是有效的并且正在被监听 sections id
  • 从 unity 运行 python 脚本,以便稍后在我的游戏中使用其输出(文本文件)

    我试图从 unity C 脚本 运行一个 python 脚本 以便稍后在我的游戏中使用它的输出 这是一个文本文件 问题是 当我在 unity 中运行 C 脚本时 没有任何反应 Python 脚本在其上运行良好 自己的 谁能告诉我我错过了什么