(C# & Unity) 脚本语言 ES_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > (C# & Unity) 脚本语言 ES

(C# & Unity) 脚本语言 ES

 2016/6/30 5:31:30  Easily  程序员俱乐部  我要评论(0)
  • 摘要:纯C#编写,解释执行,语法类似JS,动态类型,支持闭包,支持热更新,相比LUA更精简,不过效率低很多,目前暂时没有发现BUG,实际游戏运行稳定,没有发现内存泄漏Github:https://github.com/easily/EasyScript测试代码:funccalc(){print(2+3)print(2-3)print(2*3)print(2/3)}funcctrl(){n=1if(n>0){print(""n>0"")}else{print(""n<0"")
  • 标签:C# 脚本

纯 C# 编写,解释执行,语法类似 JS动态类型,支持闭包,支持热更新,相比 LUA 更精简,不过效率低很多,目前暂时没有发现 BUG,实际游戏运行稳定,没有发现内存泄漏

Github:https://github.com/easily/EasyScript

测试代码:

func calc() {
    print(2 + 3)
    print(2 - 3)
    print(2 * 3)
    print(2 / 3)
}
func ctrl() {
    n = 1
    if (n > 0) {
        print(""n > 0"")
    } else {
        print(""n < 0"")
    }
    arr = [1,2,3]
    for (i = 0, arr.count) {
        print(arr[i])
    }
    foreach (i in arr) {
        print(i)
    }
}
func closure() {
    n = 100
    f = func() {
        n = n + 1
        return n
    }
    for (i = 0, 10)  {
        print(f())
    }
}
func main() {
    print(""hello world!"")
    calc()
    ctrl()
    closure()
}
main()

输出:

hello world!
5
-1
6
0.6666667
n > 0
1
2
3
1
2
3
101
102
103
104
105
106
107
108
109
110

 

纯代码逻辑效率是 C# 的 1 / 50,包含一定的反射大概是 1 / 80,纯数学运算是 1 / 150,纯数学运算有比较多的堆内存分配,会偏慢

所以最好用在对效率要求不高,但需要比较需要灵活性的地方,还在持续的优化性能

目前已经在实际生产环境使用,我们游戏的技能系统的每一个技能脚本都是用 ES 写的,由策划编写,由于语法简单,可以很快学会

编译原理的东西学得不好,很多功能是硬堆出来的,但功能是完善的,同时也在补编译原理方面的知识,希望后期能更加优化

如果有小伙伴想使用的话,希望发现问题可以及时联系我,谢谢

 

发表评论
用户名: 匿名