标签:
2DPlatformer 是 Unity3D 的一个官方 Demo。本文将介绍使用 JSBinging + SharpKit 转换 2DPlatformer 的过程。
本文并不详细介绍每个步骤的细节。因为他们将在其他文章里做详细介绍。
准备工作:首先准备好 JSBinding 的工程,正确导入 JSBinding 插件。
2DPlatformer 是Unity3D的第一个示例代码,一共不到10M。麻雀虽小,五脏俱全。牵扯到很多东西,比如 prefab 的使用,结构体序列化,场景切换,音乐等等。
我们的目标是:在已有的工程中,不添加/更新任何C#代码,不用JS重写任何C#代码,花费最少的时间把整个 2DPlatformer 游戏添加进去。
分析:
将 2DPlatformer 导入到工程中。直接放在 Assets/ 目录下。
如图:
点击菜单:[JSB/Generate JS and CS Bindings]
(如果 Unity 版本没改 要导的类也没有变化 此步骤只需要执行一次)
设置 _JSEngine.prefab。此步骤说明了,要将 2DPlatformer 文件夹下的所有 C# 类、结构体都转换成JS。
并且所有的 prefab、场景里的所有 GameObject 都要删除对 C# 代码的引用。
运行菜单:[JSB/Tool/Add JsType Attribute for all structs and classes]
此步骤的目的是往 C# 文件(哪些文件?上个步骤配置的!)中的类和结构体添加 [JsType()] 标记。
// 原来的代码
1 using UnityEngine; 2 using System.Collections; 3 4 public class Gun : MonoBehaviour 5 { 6 public GameObject rocketGO; // Prefab of the rocket. 7 public float speed = 20f; // The speed the rocket will fire at.
// 执行菜单后(生成了 [JsType()] 标记):
1 using UnityEngine; 2 using System.Collections; 3 4 using SharpKit.JavaScript; 5 [JsType(JsMode.Clr,"../../StreamingAssets/JavaScript/SharpKitGenerated/2DPlatformer/Scripts/Gun.javascript")] 6 public class Gun : MonoBehaviour 7 { 8 public GameObject rocketGO; // Prefab of the rocket. 9 public float speed = 20f; // The speed the rocket will fire at.
执行菜单:[JSB/Tool/Gen JsType file list]
JSBinding + SharpKit / 实战:转换 2DPlatformer
标签:
原文地址:http://www.cnblogs.com/answerwinner/p/4477565.html