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. Interpolation in MATLAB

    Mathematics     One-Dimensional Interpolation There are two kinds of one-dimensional interpolation i ...

  2. Chromuim proxy Api 提取代里proxy调用Chrome隐身多窗口 多COOKIE 工具

    Chromuim proxy Api提取proxy调用Chrome隐身 多COOKIES 多窗口工具每一个代理拥有一个独立的窗口和USERDATA 独立COOKIES 伪装UA UA:<scri ...

  3. [java]wordcount程序

    词数统计系统. 作业解析:这次作业的内容是从本地读取一个程序代码,计算出这个程序中的行数,单词数,也可进行拓展. 实现语言:java 编程思路: 程序是由各种单词和符号组成的,单词包括关键字,标识符这 ...

  4. Objective-C关键字和概念

    Objective-C关键字和概念 @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementati ...

  5. tomcat building

    https://tomcat.apache.org/tomcat-7.0-doc/building.html https://tomcat.apache.org/tomcat-7.0-doc/BUIL ...

  6. 查看哪些表的哪些列含有指定字符串(如‘andy’存在哪些表的哪些列中)

    -- 查看表中列含有指定字符.SQL> select * from demo1;NAME                                   ID---------------- ...

  7. 【学】jQuery的源码思路6——增加each,animaion,ajax以及插件机制

    each() 插件机制 animation ajax //each() //这里第一个参数指定将this指向每次循环到的那个元素身上,而第三个参数element其实就是this本身所以和第一个参数是一 ...

  8. (C#) 使用Nullable类型

    有个case,对一个double数设置初始值,然后,在程序运行中,为double赋值.(注意,也可能没有赋值). 这个时候,可以用Nullable 来设置初始值,在程序的最后做个判断. 参考:

  9. 转,SelectNodes + XPath

    XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法.SelectNodes 使用 XPath 来选取节点. 重要语法 S ...

  10. 异步|同步&阻塞|非阻塞

    异步|同步:区别在于发出一个功能调用时,是否马上得到返回结果 阻塞|非阻塞:区别在于调用结果返回之前,当前线程是否挂起 node.js:单线程.异步非阻塞模型 单线程与异步不矛盾,与并发是矛盾的 ht ...