纳金网

标题: Unity3d热更新脚本Scorpio-CSharp介绍 [打印本页]

作者: qingfeng346    时间: 2014-11-14 15:38
标题: Unity3d热更新脚本Scorpio-CSharp介绍
Scorpio-CSharp是为了解决unity游戏各个平台热更新的问题 (亲测支持 PC Web Andoird IOS WP8 以及 Unity5.0.0b1下测试的 WebGL 平台)
语法参照js语法(90%)  具体使用方法参照ulua
首先奉上一张源码类架构图


hello world示例:


          LoadLibary 函数同lua  注册一些基础函数
          GetStackInfo 如果出现代码错误可以输出当前执行的堆栈信息
脚本里调用c#函数示例:
String = import_type("System.String")
          print(String.Format("{0}-{1}-{2}-{3}-{4}",1,2,3,4,5))
import_type可以直接注册一个c#类到脚本里面 类名必须是完整路径
          import_type载入的类 必须要 先调用 script.PushAssembly 压入可以加载的程序集
                        更多示例请下载源码查看
与js语法区别:
       Scorpio语句结尾可以不添加[;]

支持不支持
语法注释//     /* */
基本语法不支持new关键字
    不支持单引号字符串
声明变量var a = 0
声明Arrayvar a = [1,2]
声明Tablevar a = {
        1 = 1,
        a = "a",
        b : "b",
        "c" :  "c",
        //此类声明函数不支持获取this 相当于静态函数
        d : function() {  print("d") },
        //此种声明函数支持获取this 相当于内部函数
        function e() {  print("e") }
    }
不支持 单引号声明变量
    a = { 'a' = 100 }
运算关系符同js 支持 + - * / %
    支持自运算 += -=
    支持 ++ -- 左右侧均支持
    不支持位运算
    > >= < <= == != && ||
    !取反
    支持三目运算符 ? :
循环for foreach while switch
    支持 continue break
    支持 lua单纯for循环
    for (i=0,1000,1)
    此语法标识 从0循环到1000(包含),每次+1
循环数组和table请使用foreach
    foreach (pair in pairs(array)) {
        print("k = " + pair.key  + " v = " + pair.value)
    }

QQ群:245199668
附上源码下载地址 :  https://github.com/qingfeng346/Scorpio-CSharp

作者: hyui    时间: 2014-11-15 01:31
good tutorial !
作者: 我不再年轻    时间: 2014-11-15 11:47
很新奇的想法啊, 支持
作者: tianhett    时间: 2014-11-15 13:01
Thanks For Sharing This One!!!
作者: oelongeo    时间: 2014-11-15 13:25
支持支持
作者: qingfeng346    时间: 2014-11-18 15:02
有兴趣的朋友可以加QQ群 245199668  交流一下!  
作者: lzbGame    时间: 2014-11-18 17:19

thank for share .....




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5