qingfeng346 发表于 2014-11-14 15:39

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 =
声明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

thebat 发表于 2014-11-17 10:00


感谢楼主的无私分享!{:soso__11402694654016840197_7:}

thebat 发表于 2014-11-17 10:11

请问为啥不用c#?

123wys 发表于 2015-11-9 09:50

谢谢分享啊啊啊

avatar996 发表于 2016-7-7 17:12

cheer up~ cheer up~ cheer up~

存志 发表于 2016-7-7 22:01


不错 不错 不错

hetianlong 发表于 2017-3-7 07:43

很不错

shadow87 发表于 2017-3-7 07:34

好帖就是要顶

草根 发表于 2017-3-7 07:24

顶顶多好

yangjingchi 发表于 2017-3-7 07:22

难得一见的好帖
页: [1]
查看完整版本: Unity3d热更新脚本Scorpio-CSharp介绍