小工具

刚开始写的,一键生成lua,c#,oc,java代码工具。未完待续…
Utils.py

import json


# json文件操作
def read_json_to_dict(path):
    with open(path, 'r') as open_file:
        ret_str = open_file.read()
    parse_dict = json.loads(ret_str)
    return parse_dict


def read_json_to_list(path):
    parse_dict = read_json_to_dict(path)
    return parse_dict.items()

AutoCreateSDKCode.py

import Utils

TabBlankStr = "    "
ReturnStr = "return "


LuaFuncTemplate = '''
function {className}{isStatic}{funcName}({params})
{funcContent}
end
'''

CSFuncTemplate = '''
public static {returnType} {funcName}({params})
{funcContentStart}
#if UNITY_IOS
#elif UNITY_ANDROID
#endif
{funcContentEnd}
'''


funcContentStart = '{'
funcContentEnd = '}'

JavaFuncTemplate = ""

ObjectCFuncTemplate = ""


def parse_params(params_list):
    index = 1
    params_list_len = len(params_list)
    ret_str = ''
    for param_str in params_list:
        blank = ' '
        if index == 1:
            blank = ''
        if index % 2 != 0:
            ret_str += blank + param_str
        else:
            if index < params_list_len:
                ret_str += blank + param_str + ','
            else:
                ret_str += blank + param_str
                break
        index += 1
    # print(ret_str)
    return ret_str


def get_lua_func_content(func_name):
    return TabBlankStr + ReturnStr + "SdkU3d." + func_name + "()"


def get_lua_func_str(func_config):
    func_name = func_config[0]
    tmp = func_config[1]

    lua_str = LuaFuncTemplate.format(
        className="SDKManager",
        isStatic=".",
        funcName=func_name,
        params="obj, abc",
        funcContent=get_lua_func_content(func_name)
    )
    return lua_str


def get_cs_func_str(func_config):
    func_name = func_config[0]
    tmp = func_config[1]
    params = parse_params(tmp['params'])
    return_type = tmp['returnType']

    cs_str = CSFuncTemplate.format(
        returnType=return_type,
        funcName=func_name,
        params=params,
        funcContentStart=funcContentStart,
        funcContentEnd=funcContentEnd
    )
    return cs_str


if __name__ == "__main__":
    print("=========================")

    func_config_list = Utils.read_json_to_list("./FuncList.json")
    print(func_config_list)

    for t in func_config_list:
        func_config_elem = t
        lua_str = get_lua_func_str(func_config_elem)
        cs_str = get_cs_func_str(func_config_elem)
        print(lua_str)
        print(cs_str)

FuncList.json

{
    "getName": {
        "returnType": "string",
        "params": ["string", "name", "int", "code"]
    },
    "getName1": {
        "returnType": "void",
        "params": ["string", "name1", "int", "code1"]
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值