Scorpio-CSharp简介
Scorpio-CSharp是为了解决Unity游戏各个平台热更新的问题,纯c#实现 基于.net2.0 兼容所有c#平台 语法类似 javascript,
设计初衷是为了做一个所有人都能修改的热更新脚本,源码很少,所有路径分的很清楚,代码结构清晰,
对于那些对游戏热更新感兴趣或者对脚本系统,想自己写脚本的人再好不过了,
只要花费一天的时间就能完全读懂并修改源码
如果出了问题用的人自己就能修改,不用各个论坛求助,各种挠头,然后等待作者来解决
(ps:如果发现bug,可以立刻联系作者,作者可以放下手上工作,优先解决脚本BUG,最多一个工作日肯定更新解决,建议不算,如果联系请加QQ群 245199668 )
代码全部使用c#实现,如果出现BUG不会导致程序崩溃,而且可以很方便的对源码进行修改(如果自己改好了记得通知作者啊,本人在此拜谢了!)
Scorpio-CSharp是Unity平台兼容性最好,支持发布平台最多的脚本
目前我自己所在公司正在使用脚本,已经有几款已经上线游戏,具体请前往
https://github.com/qingfeng346/Scorpio-CSharp#showcase
Unity3d发布平台支持 (本人亲测):
Web Player
PC, Mac & Linux Standalone
iOS(包括IL2CPP 32&64)
Android
BlackBerry
Windows Phone 8
Windows 10 (Universal Windows Platform)
WebGL
在Unity中使用Scorpio-CSharp:
* 第一种方法(建议) : 源码导入,把 Scorpio 文件夹复制到项目 然后删除 文件夹下的Properties 文件夹和 Scorpio.csproj 文件即可
* 第二种方法 : 编译后倒入,用VS打开Scorpio.sln编译一下项目 生成Scorpio.dll文件 然后复制到Unity项目Plugins目录下
使用示例:
using UnityEngine;
using System.Collections;
using Scorpio;
namespace MySpace {
public class Test {
;
public Test(int a) {
this.a = a;
}
public void Func() {
Debug.Log("Func " + a);
}
public static void StaticFunc() {
Debug.Log("StaticFunc");
}
}
}
public class NewBehaviourScript : MonoBehaviour {
Script script = new Script(); //new一个Script对象
void Awake() {
script.LoadLibrary(); //加载所有Scorpio的库,源码在Library目录下
script.PushAssembly(GetType().Assembly); //添加当前程序的程序集
script.PushAssembly(typeof(GameObject).Assembly); //添加UnityEngine的程序集 (如果不调用此函数, 在调用import_type函数时会找不到 UnityEngine程序集里面的类)
script.SetObject())); //SetObject可以设置一个c#对象到脚本里
//LoadString 解析一段字符串,LoadString传入的参数就是热更新的文本文件内容
script.LoadString(@"
print(""hello world"")
");
//Scorpio脚本调用c#函数
script.LoadString(@"
MyTest = import_type(""MySpace.Test"") //import_type 要写入类的全路径 要加上命名空间 否则找不到此类,然后赋值给 MyTest 对象
MyTest.StaticFunc() //调用c#类的静态函数
var t = MyTest(200) //new 一个Test对象, 括号里面是构造函数的参数
t.Func() //调用c#的内部函数
CTest.Func() //调用c#的内部函数 CTest是通过 script.SetObject 函数设置
");
}
}
语法基本介绍:

Scorpio-CSharp简介的更多相关文章
- 2.MongoDB数据库简介
1).简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...
- RPC学习--C#使用Thrift简介,C#客户端和Java服务端相互交互
本文主要介绍两部分内容: C#中使用Thrift简介 用Java创建一个服务端,用C#创建一个客户端通过thrift与其交互. 用纯C#实现Client和Server C#服务端,Java客户端 其中 ...
- AJAX(一)AJAX的简介和基础
本节简介(异步链接服务器对象)XMLHTTPRequest以及AJAX的简介. AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML). AJ ...
- C#使用Thrift简介,C#客户端和Java服务端相互交互
C#使用Thrift简介,C#客户端和Java服务端相互交互 本文主要介绍两部分内容: C#中使用Thrift简介 用Java创建一个服务端,用C#创建一个客户端通过thrift与其交互. 用纯C#实 ...
- C#高级编程六十九天----DLR简介 .在.NET中使用DLR(转载) 我也来说说Dynamic
DLR 一.近年来,在TIOBE公司每个月发布的编程语言排行榜中,C#总是能挤进前十名,而在最近十年来,C#总体上呈现上升的趋势.C#能取得这样的成绩,有很多因素,其中它在语言特性上的锐意进取让人印象 ...
- NET Core CSharp初级篇 1-3面向对象
.NET Core CSharp初级篇 1-3 本节内容为面向对象初级教程 类 简介 面向对象是整个C#中最核心最有特色的一个模块了,它很好的诠释了程序与现实世界的联系. 面向对象的三大特征:继承.多 ...
- CSharp初级篇 1-4 this、索引器、静态、常量以及只读
.NET Core CSharp初级篇 1-4 本节内容为this.索引器.静态.常量以及只读 简介 在之前的课程中,我们谈论过了静态函数和字段的一小部分知识,本节内容中,我们将详细的讲解关于对象操作 ...
- .NET Core CSharp初级篇 1-5 接口、枚举、抽象
.NET Core CSharp初级篇 1-5 本节内容类的接口.枚举.抽象 简介 问题 如果你需要表示星期或者是某些状态,使用字符串或者数字是否不直观? 你是否发现,无论何种电脑,它的USB口的设计 ...
- .NET Core CSharp初级篇 1-6 类的多态与继承
.NET Core CSharp初级篇 1-6 本节内容为类的多态与继承 简介 终于讲到了面向对象三大特性中的两大特性--继承与多态.通过继承与多态,我们能很好的将类的拓展性发挥到了极致.在下面的内容 ...
- .NET Core CSharp初级篇 1-8泛型、逆变与协变
.NET Core CSharp初级篇 1-8 本节内容为泛型 为什么需要泛型 泛型是一个非常有趣的东西,他的出现对于减少代码复用率有了很大的帮助.比如说遇到两个模块的功能非常相似,只是一个是处理in ...
随机推荐
- Xcode LLDB Debug教程
开胃小菜--简单的断点调试 在xcode中打开一个app,在想要break的行号上单击,即可生成一个深色的箭头标识--断点.如下图,在viewDidLoad:中设置了断点. 运行app,等待...就可 ...
- @SuppressWarnings("deprecation")
在Java编译过程中会出现很多警告,有很多是安全的,但是每次编译有很多警告影响我们对error的过滤和修改,我们可以在代码中加上 @SuppressWarnings("XXXX") ...
- chosen组件实现下拉框
chosen组件用于增强原生的select控件,使之有更好的用户体验.官方demo https://harvesthq.github.io/chosen/ 目前项目中碰到的使用,比如一个页面中有两个不 ...
- (转)LINUX测试环境部署Redis(四)
安装配置Redis 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: ...
- Ret2Libc 练习(1) -- ZwSetInformationProcess
花了两个小半晚上的时间将0day安全这本书的绕过DEP的第一个实验做了,这里做些笔记. Ret2libc 我现在自己的理解就是在开启DEP保护的情况下,在程序的其他的可执行位置找到可以满足我利用要求的 ...
- online_jf.lua --累计在线时间领取物品(积分)的lua脚本
原作者: ayase 8-27修正 修复首次使用后的红字不需要额外进数据库导入计分表,这lua全自动生成 ----------------------------------------------- ...
- (转) Awesome Deep Learning
Awesome Deep Learning Table of Contents Free Online Books Courses Videos and Lectures Papers Tutori ...
- kylin(二): Calcite
Apache Calcite是面向Hadoop新的查询引擎,它提供了标准的SQL语言.多种查询优化和连接各种数据源的能力,除此之外,Calcite还提供了OLAP和流处理的查询引擎.Calcite之前 ...
- SPI总线协议及SPI时序图详解
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...
- springmvc配置servlet的拦截形式/*和/的区别
今天复制一个现有的spring-mvc的项目修改配置作为新的项目,结果悲剧了!遇到了一个小问题困扰了半天,找同事找总监都没有搞定,纠结了半天终于发现了问题所在,随笔记一下,所谓好记性不如烂博客嘛! 问 ...