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简介的更多相关文章

  1. 2.MongoDB数据库简介

    1).简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...

  2. RPC学习--C#使用Thrift简介,C#客户端和Java服务端相互交互

    本文主要介绍两部分内容: C#中使用Thrift简介 用Java创建一个服务端,用C#创建一个客户端通过thrift与其交互. 用纯C#实现Client和Server C#服务端,Java客户端 其中 ...

  3. AJAX(一)AJAX的简介和基础

    本节简介(异步链接服务器对象)XMLHTTPRequest以及AJAX的简介. AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML). AJ ...

  4. C#使用Thrift简介,C#客户端和Java服务端相互交互

    C#使用Thrift简介,C#客户端和Java服务端相互交互 本文主要介绍两部分内容: C#中使用Thrift简介 用Java创建一个服务端,用C#创建一个客户端通过thrift与其交互. 用纯C#实 ...

  5. C#高级编程六十九天----DLR简介 .在.NET中使用DLR(转载) 我也来说说Dynamic

    DLR 一.近年来,在TIOBE公司每个月发布的编程语言排行榜中,C#总是能挤进前十名,而在最近十年来,C#总体上呈现上升的趋势.C#能取得这样的成绩,有很多因素,其中它在语言特性上的锐意进取让人印象 ...

  6. NET Core CSharp初级篇 1-3面向对象

    .NET Core CSharp初级篇 1-3 本节内容为面向对象初级教程 类 简介 面向对象是整个C#中最核心最有特色的一个模块了,它很好的诠释了程序与现实世界的联系. 面向对象的三大特征:继承.多 ...

  7. CSharp初级篇 1-4 this、索引器、静态、常量以及只读

    .NET Core CSharp初级篇 1-4 本节内容为this.索引器.静态.常量以及只读 简介 在之前的课程中,我们谈论过了静态函数和字段的一小部分知识,本节内容中,我们将详细的讲解关于对象操作 ...

  8. .NET Core CSharp初级篇 1-5 接口、枚举、抽象

    .NET Core CSharp初级篇 1-5 本节内容类的接口.枚举.抽象 简介 问题 如果你需要表示星期或者是某些状态,使用字符串或者数字是否不直观? 你是否发现,无论何种电脑,它的USB口的设计 ...

  9. .NET Core CSharp初级篇 1-6 类的多态与继承

    .NET Core CSharp初级篇 1-6 本节内容为类的多态与继承 简介 终于讲到了面向对象三大特性中的两大特性--继承与多态.通过继承与多态,我们能很好的将类的拓展性发挥到了极致.在下面的内容 ...

  10. .NET Core CSharp初级篇 1-8泛型、逆变与协变

    .NET Core CSharp初级篇 1-8 本节内容为泛型 为什么需要泛型 泛型是一个非常有趣的东西,他的出现对于减少代码复用率有了很大的帮助.比如说遇到两个模块的功能非常相似,只是一个是处理in ...

随机推荐

  1. UML类图分析

    继承: 实现: 关联: 依赖: 组合: 聚合:

  2. DB2 claim与drain

    DB2使用claim & drain来控制SQL与utility对数据库对象的访问. claim说明有对象正在访问或是将要访问该对象,而drain则是在对象上面加一个drain lock,等所 ...

  3. 10天学会phpWeChat——第三天:从数据库读取数据到视图

    在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...

  4. ajaxpro 异步调用

    AjaxPro一般默认是同步调用,异步调用只需要在方法后面加一个callback函数,直接取value属性即可.例如: MyNameSpace.Page1.getOtherConfig("A ...

  5. SQL Server常用的性能诊断语句

    /* 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存.锁定和时间安排 dm_tran_*:事务和隔离 dm_io_ ...

  6. oracle基础教程(8)oracle修改字符集

    oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...

  7. kvm虚拟化平台搭建入门

    KVM虚拟化有两种网络模式:1)Bridge网桥模式2)NAT网络地址转换模式Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. 环境: 本次实验要开启VMWare中对应Ce ...

  8. [转]C/C++ 实现文件透明加解密

    今日遇见一个开超市的朋友,真没想到在高校开超市一个月可以达到月净利润50K,相比起我们程序员的工资,真是不可同日而语,这个世道啊,真是做程序员不如经商开超市, 我们高科技的从业者,真是造原子弹不如卖茶 ...

  9. C++STL算法函数总结

    容器自己定义了的算法vector:swaplist:swap,merge,splice,remove,remove_if,reverse,uniquedeque:swapmap,set,multise ...

  10. A 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)

    最熟悉的陌生人 作者:张慧桥 “枪与玫瑰” 就象瘟98有时会死机天有时会下雨枪有时会走火美国战机有时会掉下来那样,我上网聊天也只是个偶然. 都是栀子那死丫头惹的祸.让每天都觉得是情人节的我那天我自己都 ...