Unity中使用c# Process在Mac上异常Win32Exception:

Unity中使用c# Process在Mac上异常Win32Exception:

http://blog.dou.li/Process-Mac-Win32Exception.html

在Unity中调用TexturePacker打包图集,核心代码如下:

    Process p = new Process ();
    p.StartInfo.FileName = "TexturePacker";
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.Start();
    p.WaitForExit();

在Windows上运行正常,Mac上报异常:

Win32Exception: ApplicationName='TexturePacker', CommandLine='',
CurrentDirectory='' System.Diagnostics.Process.Start_noshell
(System.Diagnostics.ProcessStartInfo startInfo,
System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common
(System.Diagnostics.ProcessStartInfo startInfo,
System.Diagnostics.Process process) System.Diagnostics.Process.Start
() (wrapper remoting-invoke-with-check)
System.Diagnostics.Process:Start ()

一番查找发现,Mac上应该用open命令调用目标应用,Mac版本的代码修改如下:

    Process p = new Process ();
    p.StartInfo.FileName = "open";
    p.StartInfo.Arguments = "-a TexturePacker -n --args xxx";
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.Start();
    p.WaitForExit();

-n 启动新的TexturePacker实例
--args 后面跟TexturePacker需要的参数

参考:
http://stackoverflow.com/questions/2255624/how-to-use-process-start-or-equivalent-with-mono-on-a-mac-and-pass-in-argument

转载请注明:兜里-http://blog.dou.li/Process-Mac-Win32Exception.html

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 1. C#是什么? C#是一种编程语言,由Microsoft公司在2000年推出,被广泛用于.NET框架以及Unity游戏引擎的开发。它结合了面向对象编程(OOP)和组件对象模型(COM)的优点,具有强类型、自动垃圾回收、多线程支持等特性。 # 2. UnityC#的关系是什么? Unity采用C#作为主要的编程语言,因此开发者需要掌握一定的C#编程知识来开发Unity游戏。C#Unity的结合使游戏开发变得更加简单、高效和方便,不仅可以使用C#的强类型和面向对象编程优势,也可以借助Unity引擎的功能快速开发各种类型的游戏。 # 3. 如何在Unity使用C#? 要在Unity使用C#,首先需要在Unity创建一个C#脚本,然后将其挂载到游戏对象上。该脚本编写的代码可以控制游戏物体的行为与状态。在编写C#脚本的过程,需要熟悉基本语法、数据类型、面向对象编程、Unity API等知识点。最后,可以在Unity编辑器调试、测试和运行C#代码,以实现游戏逻辑和游戏玩法的设计。 # 4. Unity使用C#的优势是什么? Unity使用C#的优势主要包括: - 面向对象编程:C#是一种强大的面向对象编程语言,能够封装、继承和多态性等特性,有助于编写整洁、可重用和易于维护的代码。 - 快速开发:借助Unity的组件式设计和C#的高效编码,可以快速迭代和构建游戏原型,使游戏开发变得更加高效和灵活。 - 丰富的库和资源:由于C#是.NET框架的一部分,因此可以利用.NET库的丰富资源和工具来编写C#代码。此外,Unity社区也提供了大量的教程、示例代码和插件,帮助开发者更快速地学习和掌握C#编程技巧和开发技巧。 # 5. C#Unity的应用场景是什么? C#Unity可以应用于各种类型的游戏开发场景,包括2D和3D游戏、移动游戏、虚拟现实和增强现实等。使用C#语言可以轻松实现游戏的逻辑设计、碰撞检测、人工智能等功能,以及与其他系统(如音频、网络等)的集成。此外,C#语言还适用于Unity的插件开发、游戏性能优化、游戏工具扩展等方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值