winget install --id=Scorpio.sco -e
sco是c#实现的解释型脚本,是一种高效,轻量,可嵌入的脚本语言,语法类似javascript,类型为弱类型,通过使用基于栈的虚拟机解释字节码来运行.
sco是c#实现的解释型脚本,是一种高效,轻量,可嵌入的脚本语言,语法类似javascript,类型为弱类型,通过使用基于栈的虚拟机解释字节码来运行.
pwsh -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://qingfeng346.gitee.io/installsco.ps1'))"
powershell.exe -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://qingfeng346.gitee.io/installsco.ps1'))"
脚本文本文件编码要改成 utf8 without bom (无签名的utf8格式)
使用 importType 函数引入一个c#类, 参数字符串请参考 Type.GetType, 类似
脚本内所有c#实例(除了bool,number,string,enum等基础类型) 均为引用, struct 变量也一样
event 对象 += -= 操作可以使用函数 add_[event变量名] remove_[event变量名] 代替
c# 扩展函数, 请先调用 importExtension("类型") 引用
Unity3d 使用 IL2CPP 后, 部分Unity3D的类或函数不能反射获取,请配置link.xml或者使用快速反射功能
genericMethod, genericType 函数在IL2CPP下生成未声明过的类型会报错
运算符号 | 反射名称 | 脚本是否支持直接调用 ----- | ---- | ---- + | op_Addition | 支持 - | op_Subtraction | 支持 * | op_Multiply | 支持 / | op_Division | 支持 % | op_Modulus | 支持 | | op_BitwiseOr | 支持 & | op_BitwiseAnd | 支持 ^ | op_ExclusiveOr | 支持 > | op_GreaterThan | 支持 >= | op_GreaterThanOrEqual | 支持 < | op_LessThan | 支持 <= | op_LessThanOrEqual | 支持 == | op_Equality | 支持 != | op_Inequality | 不支持, 脚本 != 会直接取反 == [] | get_Item(获取变量) | 支持 key 不为string的情况 [] | set_Item(设置变量) | 支持 key 不为string的情况
快速反射类生成
sco fast -dll [dll文件路径] -class [class完整名] -output [输出目录]
快速反射类使用
Scorpio.Userdata.TypeManager.SetFastReflectClass(typeof(UnityEngine.GameObject), new ScorpioClass_UnityEngine_GameObject(script))
支持的Unity版本
支持的Unity平台:
Unity导入Scorpio-CSharp: