(C# & Unity) 脚本语言 ES

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C# & Unity) 脚本语言 ES相关的知识,希望对你有一定的参考价值。

纯 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 / 150,

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

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

 

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

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

 

以上是关于(C# & Unity) 脚本语言 ES的主要内容,如果未能解决你的问题,请参考以下文章

unity3d脚本语言中的引用类型

unity里C#脚本的velocity怎么用

Unity3D写C#脚本,用鼠标左键按下选中模型时,控制一个模型按照模型的X轴向移动,Y轴向移动,Z轴向移动。

我想写个unity3D C#脚本用鼠标拖动物体,该怎么办呀,

Unity 学习—— 编写脚本

小试牛刀C#作为脚本语言执行解密