Unity Mac下Editor执行shell(实现类似win下直接bat的效果)

简介:


Unity在Mac下直接运行sheel需要用到一个静态方法即可.这里直接调用选择open,bash两种方式都可以.本文只阐述我自己感觉最灵活的方式.由于操作文件还是shall比较方便.而且通过shall调用其他的语言也没有什么问题.所以我直接是用bash来运行shall.

//TestShall.cs放到Editor文件夹下.
public class TestShall
{
    [MenuItem("Shell/TestShall_Open")]
    public static void TestShall_Open()
    {
        string shell = Application.dataPath + "/t1.sh";
        System.Diagnostics.Process.Start("/bin/bash", shell);
        Debug.LogFormat("TestShall_Open:{0}",shell);
    }
}

目录结构(测试用例目录结构.并没有强制要求.如果有其他需求自行修改即可)

+Assets
->+Editor
->->TestShall.cs
->open.sh
->t1.sh
TestShell.log

Shall文件:


shall文件的权限.

测试用例t1.sh文件是放在Application.dataPath目录下.
shell执行用的bash.执行目录是在Assets的上一层.

ls -l #可以查看当前目录下的权限.如果t1.sh低可以用下面的语句
chmod 777 t1.sh #提高到最大权限

测试shall是否启动

t1.sh文件内容

#!/bin/bash
echo $0 >> TestShell.log

把当前的执行目录输出到一个log文件中.在log中可以发现执行目录是在Assets的上一层.

实现类似win下bat的效果:


win下面直接bat文件双击 会弹出终端.mac下面也是没问题的.需要用到open即可.

需要先把sh文件默认打开方式设置成终端.

如果就想一个shall文件会默认打开终端.需要右键打开方式上面设置就好了.
如果想全局都默认终端.右键找到 “内容简介” 然后找到一项叫 “打开方式”.然后可以看到 “全部更改”.

新建一个open.sh

注意权限

#!/bin/bash
echo 执行成功!
echo Shall目录$0
echo 执行目录$(pwd)

让t1.sh调用open.sh

修改t1.sh

#!/bin/bash
echo $0 >> TestShell.log
open Assets/open.sh #由于是Assets目录的上一层.我们的open.sh在Assets目录下所以需要指定.

这里写图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值